Для примера, рассмотрим BIOS, реализованную на шине расширения. В ходе инициализации, данную BIOS можно затенять в основную память, чтобы повысить производительность системы. При затенении BIOS в основную память, ее необходимо скопировать в область с совпадающими адресами. Чтобы можно было затенять BIOS, атрибуты соответствующего диапазона адресов должны быть установлены в значение «только для записи». Процесс затенения BIOS начинается с обращения на чтение по данному диапазону адресов. Это обращение направляется на шину расширения. После этого процессор исполняет запись по тому же адресу. Это обращение направляется в основную память. После затенения BIOS, атрибутам данной области памяти устанавливается значение «только для чтения», чтобы все обращения на запись направлялись на шину расширения. Регистры РАМ и соответствующие биты атрибутов показаны в следующей таблице. Сравнивая только что приведенный фрагмент спецификации 9 Можно заключить, что процедура, приведенная в листинге северный мост таким образом, чтобы все обращения к диапазону чипа BIOS направлялись к шине PCI, а оттуда — к чипу BIOS. Следующая процедура разрешает запись в чип BIOS. Как было показано в Главе 9, большая часть диапазонов чипа BIOS по умолчанию защищена от записи. Чтобы разрешить запись в чип, необходимо ввести специальную последовательность байтов. Эту задачу выполняет фрагмент кода, приведенный в Если вам трудно понять код, приведенный, попробуйте сравнить значения, записываемые в диапазоны адресов чипа BIOS, со значениями, уже содержащимися в другом чипе BIOS, используемом как образец — Для этой цели, здесь приводится фрагмент спецификации технических характеристик чипа Winbond 29С020С. Как указано в спецификации на данный чип, он поддерживает функцию программной защиты от перезаписи. Эта функция может быть активизирована или блокирована по желанию пользователя. Для осуществления этих задач необходимо выполнить серию команд, осуществляющих запись предопределенных данных по предопределенным адресам чипа BIOS.
Рубрика: Женский интерес