Установка ПО
Компьютеры все совершенствуются и совершенствуются, а память все
дешевеет и дешевеет. Одиннадцать лет назад модуль памяти объемом четыре
мегабайта стоил сто с небольшим долларов. С тех пор цены упали на три
порядка - почти за те же деньги сейчас можно купить четыре гигабайтовых
модуля.
Системные платы для домашних компьютеров, поддерживающие
установку четырех и даже восьми гигабайт оперативной памяти, перестали
быть экзотикой, а удешевление памяти сделало покупку и установку ОЗУ
такого размера реальными. Еще раз уточню, что речь идет именно о
домашних компьютерах и о массовых рабочих компьютерах, поскольку серверы
достигли этого рубежа достаточно давно, да и для серьезных рабочих
станций такой объем ОЗУ уже не в новинку.
А вот рядовые пользователи лишь недавно получили возможность
приобрести по приемлемой цене компьютер с четырьмя гигабайтами ОЗУ или
расширить до этого предела память в уже имеющемся компьютере. Поэтому
количество вопросов
«Почему Windows не видит все мои четыре гигабайта» в последнее время увеличивается даже не в арифметической, а в геометрической прогрессии.
Ответ на этот вопрос начнем с небольшого экскурса в теорию
организации ЭВМ и в историю развития семейства этих машин, совместимого с
IBM PC.
Оперативная память ЭВМ практически всегда работала на
несколько порядков быстрее, чем устройства внешней памяти или
ввода-вывода. Поэтому для разработчиков было вполне логичным разделить
операции обращения к ОП и к другим устройствам. К памяти шло
непосредственное обращение, а операции ввода-вывода и работа с внешними
устройствами выполнялись через специальные регистры - порты. С другой
стороны, такое разделение усложняло систему команд, и в ряде моделей для
обращения к устройствам была выделена область адресов памяти, в которой
и размещались регистры устройств. По второй модели, в частности, была
спроектирована знаменитая PDP-11: ее шестьдесят четыре килобайта
адресного пространства были разделены на две части - 56 для оперативной
памяти и восемь для устройств. Установка модуля ОЗУ полного объема (64
КБ) приводила к тому, что одна восьмая его часть просто не могла быть
использована.
Компания Intel с самого начала, с модели 4004 использовала
первый подход: одно адресное пространство для ОЗУ и ПЗУ, а другое,
отдельное пространство портов ввода-вывода - для остальных устройств.
Такое решение, конечно, давало возможность полностью использовать все
адресное пространство под память. Но оно имело и отрицательные стороны.
Обращение к портам обычно занимает больше времени, к тому же оно не
совместимо с технологией прямого доступа в память, заметно увеличивающей
скорость обмена данными и разгружающей центральный процессор.
Поэтому разработчики компьютеров и периферийных устройств уже
достаточно давно стали совмещать ввод-вывод через порты с прямым
обращением в оперативную память устройства. Но чтобы обратиться к памяти
устройства напрямую, эта память должна быть расположена в общем
адресном пространстве.
Если взять классический ПК, выпущенный в 1981 году, то его
адресное пространство было поделено на две части в соотношении пять к
трем. Первая часть отводилась для ОЗУ, а вторая - для ПЗУ самого
компьютера (программа самотестирования - POST и базовая система
ввода-вывода - BIOS) и для ПЗУ и ОЗУ устройств. Уже самый первый
видеоадаптер MDA имел свою оперативную память, находящуюся в общем
адресном пространстве памяти.
Следует обратить внимание, что та часть адресного пространства,
которая занята устройствами, не может быть одновременно использована для
основной памяти компьютера. Ведь если на обращение к ячейке памяти
будут откликаться два устройства, то возможны конфликты между ними и,
как следствие, нарушение работы компьютера.
Когда в 1985 году компания Intel выпустила процессор 80386,
то при разработке компьютеров на его основе были приняты два решения.
Во-первых, распределение адресов в первом мегабайте было оставлено
неизменным ради совместимости с предшествующими моделями компьютеров и
разработанными для них программами. Во-вторых, для реализации
преимуществ 32-разрядной архитектуры было предусмотрено, что
устройствам, нуждающимся в использовании адресного пространства памяти,
выделяется четвертый гигабайт.
Возможно, сейчас кому-то это решение и кажется опрометчивым,
но тогда гигабайты памяти казались чем-то фантастическим. Да и вряд ли
кто-то мог в то время предположить, что эта архитектура проживет еще как
минимум двадцать лет.
Впрочем, как оказалось, на самом деле решение вовсе не было
опрометчивым: для работы видеоускорителей жизненно важна возможность
прямого доступа драйвера к видеопамяти. Ведь альтернативой является
пословная запись данных в порт, и тогда можно забыть, к примеру, о
современной графике в играх. Чтобы получить примерное представление, как
бы это выглядело, можете сравнить поведение дисковой системы в режиме
прямого доступа в память (UDMA) и в режиме программного ввода-вывода
(включите режим PIO 1 в настройках контроллера дисков, только не
забудьте потом вернуть исходные настройки).
источник
http://www.ixbt.com/soft/windows-4gb.shtml
|