link140 link141 link142 link143 link144 link145 link146 link147 link148 link149 link150 link151 link152 link153 link154 link155 link156 link157 link158 link159 link160 link161 link162 link163 link164 link165 link166 link167 link168 link169 link170 link171 link172 link173 link174 link175 link176 link177 link178 link179 link180 link181 link182 link183 link184 link185 link186 link187 link188 link189 link190 link191 link192 link193 link194 link195 link196 link197 link198 link199 link200 link201 link202 link203 link204 link205 link206 link207 link208 link209 link210 link211 link212 link213 link214 link215 link216 link217 link218 link219 link220 link221 link222 link223 link224 link225 link226 link227 link228 link229 link230 link231 link232 link233 link234 link235 link236 link237 link238 link239 link240 link241 link242 link243 link244 link245 link246 link247 link248 link249 link250 link251 link252 link253 link254 link255 link256 link257 link258 link259 link260 link261 link262 link263 link264 link265 link266 link267 link268 link269 link270 link271 link272 link273 link274 link275 link276 link277 link278 link279

PersCom — Компьютерная Энциклопедия Компьютерная Энциклопедия

Оперативная память

Логическая организация памяти

Адресное пространство первого ПК составляло всего 1 Мбайт, при этом верхние 384 Кбайт были зарезервированы для использования самой системой. Размещение зарезервированного пространства в верхней области (между 640 Кбайт и 1 Мбайт) вместо использования нижней области памяти (между 0 и 384 Кбайт) привело к появлению так называемого барьера основной памяти. Постоянная необходимость совмещать систему и периферийное оборудование и сегодня не всегда позволяет разработчикам отступать от стандартной конфигурации первого ПК. Вот почему вопросы распределения памяти в современных персональных компьютерах так и остались неразрешенными. Несмотря на то что со времени появления первого ПК прошло более 20 лет, в системах с процессорами Core 2 Extreme и Athlon 64 X2 по-прежнему используется то же распределение памяти, что и в первых компьютерах.

Рассмотрим вопрос логической организации памяти в исторической перспективе. Существуют два основных режима работы компьютера, которые сильно отличаются один от другого. Первые ПК на базе процессора Intel 8088 могли выполнять только 16-разрядные инструкции, и этот режим был назван реальным режимом процессора. Эти первые процессоры позволяли адресовать до 1 Мбайт памяти, последние 384 Кбайт которой были зарезервированы для использования видеокартами (в качестве видеопамяти), прочими адаптерами (для выгрузки собственной системы BIOS и хранения буферов памяти) и самой материнской платой (также для выгрузки BIOS).

Процессоры 286 позволяли адресовать уже 16 Мбайт оперативной памяти. Для ее использования процессор должен был переходить в так называемый защищенный

режим. К сожалению, все операционные системы того времени позволяли адресовать только первый мегабайт памяти, так что программам, которым требовался больший объем, приходилось прибегать к помощи разного рода дополнительных драйверов. Только с помощью таких приемов в DOS и Windows 3.x стало возможным получать доступ к первым 16 Мбайт памяти. Одна из сложностей состояла в том, что доступная операционной системе область памяти была сегментированной. Ей были доступны первые 360 Кбайт и последние 15 Мбайт; 385 Кбайт, лежащие между ними, оставались зарезервированными для аппаратных нужд.

Когда в 1985 году компания Intel выпустила первый 32-разрядный процессор (386DX), произошли серьезные изменения в архитектуре памяти. Теперь процессор уже мог адресовать до 4 Гбайт оперативной памяти, однако она была доступна только в 32-разрядном защищенном режиме, в котором могли выполняться только 32-разрядные инструкции. Этот режим был предназначен для новых, более совершенных операционных систем, таких как Windows 9x/NT/2000/XP/Vista, Linux, OS/2, Unix и др. На смену старой пришла новая архитектура памяти, с которой могло работать 32-разрядное программное обеспечение. К сожалению, до появления первой 32-разрядной операционной системы оставалось еще десять лет. С точки зрения программных инструкций все процессоры начиная с 386 являются всего лишь его ускоренными версиями. Если не учитывать .дополнительные инструкции работы с мультимедиа MMX и SSE (или 3DNow! в процессорах от AMD), даже процессоры Pentium 4 и Athlon представляли всего лишь разогнанные версии процессора 386. И что еще более интересно, 64-разрядные процессоры для серверных систем, такие как Intel Itanium и AMD Opteron, также можно отнести к этой категории, поскольку на них выполнялось все то же 32-разрядное программное обеспечение.

Основная проблема состояла в том, что 32-разрядные процессоры имели два совершенно различных режима работы, каждый из которых использовал свою архитектуру памяти. Из соображений обратной совместимости эти процессоры могут работать в реальном режиме, обслуживая только 16-разрядные программы, способные обращаться только к первым одному или шестнадцати мегабайтам памяти (в зависимости от того, как они были написаны). К примеру, 16-разрядные драйверы могут быть загружены только в первый мегабайт памяти и только к нему могут обращаться. В категорию 16-разрядных программ входят системная BIOS, включая процедуру POST, программа настройки BIOS, загрузочный код и все внутренние драйверы. Причиной этого является то, что при включении питания компьютера все Intel-совместимые процессоры начинают работу в реальном режиме. Процессоры переключаются в защищенный режим только инструкциями загружаемой 32-разрядной операционной системы.

Переключение в 32-разрядный защищенный режим происходит на начальной стадии загрузки операционной системы. После этого загружаются все 32-разрядные драйверы устройств и только затем — все остальные компоненты операционной системы. Находясь в защищенном режиме, операционная система и все программы могут обращаться ко всей памяти, установленной в системе, вплоть до верхнего предела процессора (в процессорах, начиная с Pentium II, это 64 Гбайт). Аналогично происходит переключение 64-разрядных процессоров в защищенный режим при загрузке 64-разрядной операционной системы.

Простите за тавтологию, но основной проблемой защищенного режима является его защищенность. Свое название этот режим получил из-за того, что в нем обращаться к устройствам могут только драйверы. Программы, загружаемые операционной системой (например, двойным щелчком на значке в Windows), не могут обращаться напрямую к памяти или каким-либо устройствам. Эта защита была введена для того, чтобы некорректные действия одной программы не могли нарушить общую работоспособность системы. Если вы уже работали в Windows, то наверняка сталкивались с ситуацией, когда внезапно открывается окно с сообщением, что программа выполнила недопустимую операцию и будет закрыта.

Программы диагностики по своей природе должны напрямую обращаться к оборудованию. Это значит, что в среде операционных систем, работающих в защищенном режиме (таких, как Windows 9x/NT/2000/XP/Vista и Linux), возможности тестирования ограничены. Для выполнения полного тестирования необходимо загрузиться с дискеты или компактдиска DOS или прервать загрузку Windows с помощью клавиши <F8> и выбрать в меню режим поддержки командной строки. В системах семейства Windows 9x (кроме Windows Me) можно выполнить перезагрузку в режим MS-DOS. Большинство профессиональных программ диагностики содержат собственные 16-разрядные операционные системы, позволяющие обращаться ко всей памяти даже из DOS. Работая в операционных системах Windows 2000 и XP, можно отформатировать загрузочную дискету MS-DOS, установив соответствующий флажок в диалоговом окне форматирования. Это окно открывается после щелчка правой кнопкой мыши на значке дисковода в окне Мой компьютер и выбора в контекстном меню пункта Форматировать (Windows 2000/XP) или с помощью меню Форматировать в окне Компьютер (Windows Vista).

К примеру, после загрузки с загрузочного диска Windows 9x на самом деле запускается 16-разрядная версия DOS, и, если вам нужен доступ к приводу оптических дисков (к примеру, для установки Windows), с этого же диска необходимо загрузить соответствующий 16-разрядный драйвер устройства. В этом режиме можно выполнять разбиение жесткого диска на разделы и их форматирование, устанавливать Windows и выполнять полноценную диагностику системы. Все OEM-версии Windows 98 и более новые поставляются на загрузочных компакт-дисках, так что, если система поддерживает загрузку с компакт-диска, установите в настройках BIOS привод CD-ROM в качестве первого загрузочного устройства. Таким образом можно избежать необходимости создания отдельной загрузочной дискеты.

Подытожим сказанное. Даже несмотря на то, что сегодня система MS-DOS не находит широкого применения в компьютерном мире, такие операции, как установка и конфигурирование системы, а также полноценное тестирование устройств и восстановление данных, все же необходимо выполнять в среде 16-разрядной ОС. В этом режиме архитектура системы изменяется, становится доступным меньший объем памяти, в результате чего все программное обеспечение (т.е. 16-разрядные драйверы и код приложений) должно вместиться в первые 1 Мбайт (или в 640 Кбайт) оперативной памяти.

Области системной памяти, включая верхние 384 Кбайт первого мегабайта (используемые для BIOS адаптеров и материнской платы, а также для видеопамяти), являются частью общей архитектуры компьютера. Они существуют независимо от того, какие приложения запускаются: 16- или 32/64-разрядные. В то же время ограничения на их использование в 16-разрядной среде более строгие. Современные 3-разрядные операционные системы Windows 9x/2000/XP/Vista и Linux, под управлением которых работает большинство компьютерных систем, а также их 64-разрядные версии автоматически управляют использованием оперативной памяти. Это значит, что нет никакой необходимости управлять распределением памяти вручную, что было характерно для 16-разрядных операционных систем.

Если в силу тех или иных обстоятельств вам приходится работать в DOS или 16-разрядных версиях Windows или если в системе установлены старые адаптеры ISA, EISA, MCA и VL-Bus, необходимо четко понимать логическую карту памяти, чтобы избежать конфликтов между устройствами и оптимизировать общую производительность системы.

Более подробно о структуре логической памяти и методах оптимизации ее использования можно узнать из главы 6 предыдущего издания данной книги, электронная версия которого доступна на прилагаемом диске.