Один из основополагающих принципов организации памяти заключается в том, что нельзя присваивать двум физическим устройствам одни и те же адреса. Это означает, что 384 Кбайт в первом банке памяти в нашей ситуации вступают в конфликт с видеопамятью (сегменты A000 и B000), областями ROM различных адаптеров (сегменты C000 и D000) и, естественно, с областью ROM системной платы (сегменты E000 и F000). Поэтому все области RAM модуля SIMM, которые располагаются по этим адресам, необходимо отключить, иначе компьютер не будет работать. Для решения проблемы разработчики системных плат используют различные методы; три из них приведены ниже.
■ Быстродействующие области RAM используются для хранения копий содержимого "медленных" областей ROM (т.е. для организации затененной памяти); сами области ROM при этом отключаются.
■ Отключаются все области RAM, которые не используются для затененной памяти, что предотвращает все возможные конфликты в области верхней памяти.
■ Области RAM, не используемые для затененной памяти, переадресуются таким образом, чтобы их можно было добавить к имеющейся дополнительной памяти.
В большинстве компьютеров организуется затененная память только для ROM системной платы (64 Кбайт) и видеопамяти (32 Кбайт), а остальная область RAM отключается. Для некоторых областей ROM системной платы можно выделить дополнительную затененную память в диапазоне адресов С8000-DFFFF (шаг приращения обычно равен 16 Кбайт).
Замечание
Напомним, что организовать затененную память можно только для области ROM, но не для области RAM. Если для какой-либо платы (например, сетевой) предусмотрена буферная область RAM в диапазоне C8000-DFFFF, то эти адреса должны быть исключены при создании затененной памяти, иначе плата работать не будет. По этой же причине нельзя организовать затененную память для области A0000-BFFFF, отведенной для видеопамяти.
В большинстве системных плат переадресация памяти не выполняется, поэтому память, которая осталась от 384 Кбайт и не была использована для затененной памяти, просто теряется. Вот почему кажется, что создание затененной памяти не требует дополнительных ресурсов. В большинстве компьютеров память, не используемая в затенении, просто отключается, и доступный объем оказывается на 384 Кбайт меньше установленного. В рассматриваемом нами примере при отсутствии переадресации основная память окажется равной 640 Кбайт, а дополнительная — 1 024 Кбайт, т.е. размер доступной области RAM составит всего 1 664 Кбайт, что на 384 Кбайт меньше установленного.
Следует заметить, что при сравнительно больших объемах памяти, используемой в современных персональных компьютерах, потеря незначительного объема размером в 384 Кбайт практически незаметна. Кроме того, преимущества затененной памяти могут быть реализованы только при работе в 16-разрядной операционной среде, например в MS DOS, поэтому сис темы, работающие с Windows, никакого влияния на установочные параметры затенения не оказывают. В том случае, если BIOS Setup поддерживает опции, позволяющие изменять эти параметры, лучше все-таки воспользоваться значениями, заданными по умолчанию.