Windows 7 x64 не видит всю оперативную память. Почему Windows 7 видит не всю оперативную память?

Windows 7 x64 не видит всю оперативную память. Почему Windows 7 видит не всю оперативную память?

Проблему, когда Windows 7 не видит всю оперативную память можно разделить на несколько:

  1. Windows 7 x32 не видит всю оперативную память (видеокарта дискретная т.е. не встроенная в чипсет или процессор).  В свойствах компьютера можно наблюдать следующую запись: “Установленная память (ОЗУ) = 4Гб (доступно 3.2Гб)”, в BIOS же объем оперативной памяти указан верно, полностью. В данном случае все довольно просто. Если Windows 7 x32 видит не всю оперативную память (а у вас ее 4гб или более), а в BIOS значение “Total memory size” соответствует полному физическому объему вашей ОЗУ, то вы просто ошиблись в выборе операционной системы, а точнее ее разрядности.
    Дело в том, что в силу некоторых ограничений 32-х разрядные операционные системы могут адресовать до 4Гб оперативной памяти, однако, в Windows эта планка понижена до 2.8-3.5Гб из-за резервирования памяти для оборудования (устройства PCI, так же память видеокарты, обычно поддерживают только 32битные адреса. Следовательно, им должны быть выданы физические адреса ниже отметки 4Гб. Это резервирование уменьшает объем видимой физической памяти ниже 4Гб до ~ 3.2Гб). В принципе с данным эффектом можно “побороться” включив “Memory remapping” в BIOS.
    64-разрядные же версии Windows 7 способны адресовать гораздо больший объем памяти (в зависимости от версии до 192Гб). Таким образом, если ваша Windows 7 x32 не видит всю оперативную память, попробуйте переустановить ее на 64-х разрядную версию.
  2. Windows 7 x32 не видит всю оперативную память (видеокарта интегрированная, встроенная. Itel HD например). В BIOS объем оперативной памяти указан верно, полностью.  В свойствах компьютера (пр. кл. мыши “Компьютер” —> “Свойства”, для тех кто забыл) наблюдается следующая запись: “Установленная память (ОЗУ) = 2Гб (доступно 1.83 доступно)”. В данном случае, часть оперативной памяти резервируется под нужды встроенной видеокарты Intel HD Graphics (данный пример я взял со своего ноутбука). Это не является неисправностью.

    Windows 7 x32bit не видит всю оперативную память, т.к. небольшая часть ОЗУ резервируется для видеокарты Intel HD Graphics.
    Windows 7 x32bit не видит всю оперативную память, т.к. небольшая часть ОЗУ резервируется для видеокарты Intel HD Graphics.
  3. Компьютер под управлением Windows 7 x64 видит не всю оперативную память, даже в BIOS отображается не весь ее объем. Т.е. вы поставили, вернее добавили к планке ОЗУ объемом 2Гб еще такую же, но даже в настройках BIOS наблюдаете надпись “Total memory size = 3Gb”. Где еще 1Гб памяти спрашивается?

Ситуация, когда Windows 7 x64 не видит всю оперативную память (и в BIOS наблюдается та же ситуация) гораздо сложнее. Зачастую случается так, что со временем, объем оперативной памяти компьютера уже не удовлетворяет потребностям пользователя и аппетитам определенных программ и ОЗУ приходится расширять докупая дополнительную планку памяти и доставляя ее к уже существующей. Но иногда, к разочарованию, обнаруживается, что вместо вожделенных 4ГБ (2Гб+2Гб) система видит почему-то 3 и даже в настройках BIOS, в разделе Sistem Information, можно наблюдать Total memory size = 3Gb. Многие пользователи начинают грешить в таком случае на неисправный модуль памяти, Windows, BIOS или на материнскую плату, однако, причина кроется в понимании адресации оперативной памяти.

В данном случае, необходимо убедиться, что ваше железо удовлетворяет определенным требованиям. Процессор поддерживает инструкции x64. Этот набор инструкций поддерживается процессорами AMD64 и Intel EM64T. Данный тип инструкций поддерживают все современные процессоры, так что если у вас не Intel Pentium III или Athlon XP беспокоиться не о чем.

Так же, для того, чтобы Windows увидела все 4Гб установленной ОЗУ набор микросхем (чипсет) должен поддерживать не менее 8ГБ ОЗУ. Почему? Допустим, что если по документам ваша материнская плата поддерживает максимум 4Гб оперативной памяти и вы поставили как раз модули с данным объемом, реальное значение используемой памяти для Windows буде меньше, т.к. часть памяти будет зарезервировано для шины PCI.

Например, еще не старый чипсет Intel H61 ограничен поддержкой 16Гб ОЗУ. Если вы поставите модули памяти с объемом 16Гб, то в свойствах Windows отобразится меньшее значение. И это будет нормально.

Ситуация, когда Windows 7 x64 не видит всю оперативную память возможна еще по причине совместного использования модулей памяти с односторонним и двухсторонним расположением чипов на плате. Например в спецификации к чипсету Intel H61 указано, что: “The H61 chipset only supports one double-sided DIMM per memory-channel…” Т.е. чипсет H61 поддерживает только один двухсторонний модуль памяти на канал. На материнских платах с четырьмя слотами под оперативную память (DIMM), можно установить только четыре односторонних модуля или два двухсторонних.

 

Модуль памяти DIMM (ОЗУ) с односторонним расположением чипов
Модуль памяти DIMM (ОЗУ) с односторонним расположением чипов

Модуль памяти DIMM (ОЗУ) с двухсторонним расположением чипов
Модуль памяти DIMM (ОЗУ) с двухсторонним расположением чипов

 

Немного теории. Разрядность шины памяти

32-битные ЦПУ и АЛУ — архитектуры, основанные на регистрах и шинах данного размера. Диапазон целых значений, которые могут быть сохранены в 32 бит: от 0 до 4294967295. Таким образом, процессор с 32-битной адресацией памяти может напрямую обращаться 4 Гб памяти.

Реальный режим памяти

После подачи сигнала сброса или включения питания процессор начинает работу в реальном режиме; в этом режиме начинается исполнение BIOS IBM PC-совместимого компьютера. В компьютере имеются различные виды оперативной памяти. В первых компьютерах применялся так называемый реальный режим работы процессора, не позволявший адресовать более 1 Мбайт памяти. Начальная область адресов от 0 до 640 Кбайт использовалась для оперативной памяти, а область от 640 Кбайт до 1 Мбайт – для памяти и регистров периферийных устройств, таких как видеоадаптеры и дисковые контроллеры. Раньше оперативная память была очень дорогая, поэтому далеко не в каждом компьютере было установлен максимально возможный объем – 1 Мбайт. Можно было встретить компьютеры с объемом оперативной памяти, например, 512 Кбайт. Программы в те времена, конечно, тоже были не очень требовательны к объему памяти. С появлением операционных систем Microsoft Windows и IBM OS/2 требования к объему памяти, установленной в компьютере, резко возросли. Компания Intel выпустила процессор i80286, способный адресовать в защищенном режиме до 16 Мбайт физической памяти. Теперь память с адресами в пределах первого мегабайта стала называться стандартной, а выше этого предела – расширенной (extended). Размер расширенной памяти определяется во время инициализации компьютера и записывается в память CMOS, откуда ее нетрудно извлечь.

Защищенный режим памяти

Суть защищённого режима в следующем: программист и разрабатываемые им программы используют логическое адресное пространство, размер которого может составлять 1 гигабайт. Логический адрес преобразуется в физический адрес автоматически с помощью схемы управления памятью (MMU). При этом содержимое сегментного регистра не связано напрямую с физическим адресом, а является номером сегмента в соответствующей таблице. Благодаря защищённому режиму, в памяти может храниться только та часть программы, которая необходима в данный момент, а остальная часть может храниться во внешней памяти (например, на жёстком диске). В случае обращения к той части программы, которой нет в памяти в данный момент, операционная система может приостановить программу, загрузить требуемую секцию кода из внешней памяти и возобновить выполнение программы.

 

Страничная организация памяти

Основная мысль сводится к формированию таблиц описания памяти, которые определяют состояние её отдельных сегментов/страниц и т. п. При нехватке памяти операционная система может выгрузить часть данных из оперативной памяти на диск, а в таблицу описаний внести указание на отсутствие этих данных в памяти. При попытке обращения к отсутствующим данным процессор сформирует исключение #PF (разновидность прерывания) и отдаст управление операционной системе, которая вернёт данные в память, а затем вернёт управление программе. Таким образом для программ процесс подкачки данных с дисков происходит незаметно.

До изобретения виртуальной памяти процессор работал с областью не более 4096Кб т.к. вся память доступная “выше” считалась недоступной ибо не соответствовала реальной памяти. Т.е. использовалось прямое обращение к памяти например в процессоре с 16-ти разрядным полем адреса и 4096 словами памяти можно было адресовать не выше 4095 т.к. все, что выше не соответствовало реальным адресам памяти.

В старых компьютерах (с ЦП работающем только в реальном режиме) без организации виртуальной памяти при обращении вы ше 4095 программа сгенерировала бы ошибку и прекратила выполнение. В современных компьютера работающих с процессорами поддерживающими виртуальный режим, адреса памяти, например, с 8192 по 12287 отображаются на адреса основной памяти с 0 по 4095 используя технологию страничной памяти. При адресации свыше 4095, содержимое памяти будет сохранено на диск, слова с 8192 по 12287 будут загружены в основную память и отображение изменится так, что адреса с 8192 по 12287 будут соответствовать памяти с 0 по 4095. такие фрагменты памяти, которые считываются с диска и “накладываются”  на основную (доступную физически 4096) память для процессора назыаются страницами. Адреса к которым обращается программа – виртуальное адресное пространство, а реальные адреса памяти реализованные аппаратно – физически доступная память.

Первые ОС применяли очень простые методы управления памятью. Вначале каждый процесс пользователя должен был полностью поместиться в основной памяти, занимать непрерывную область памяти, а система принимала к обслуживанию дополнительные пользовательские процессы до тех пор, пока все они одновременно помещались в основной памяти.

В современных компьютерах память доступная приложениям не имеет однозначного соответствия с реальной физической. ОС осуществляет связывание логических и физических адресных пространств. Адресное пространство, к которому обращается процессор за данными и кодом, в котором располагаются сегменты (названное линейным адресным пространством) может не соответствовать реальной физической памяти. Физическая память (включая буферы внешних устройств, например видеобуфер) может быть отображена в линейное адресное пространство произвольным образом — каждая страница (размером 4 килобайта) линейного пространства может быть переадресована на любую страницу физической памяти через каталог страниц, располагающийся в оперативной памяти.

<–8-разр. ячейка, 1байт—>

| 0|0 |1 |0 |1 |1 |0 |0 |  <–Ячейка хранит данные 1/0 в 8 разрядах. Сама ячейка имеет адрес.

8-и разрядная ячейка может хранить 8 бит (8 единичек/ноликов, называется словом). Слова могут быть разной длины. |0|0|1|0|1|1|0|1| – слово в 8бит (1байт),    |0|1|0|0|1|0|1|0|1|0|0|0|0|1|1|0| – слово в 16бит (2байта).

Если адрес состоит из n-бит, то максимальное число адресуемых ячеек составит 2 в степени n. Число адресуемых
ячеек памяти зависит от числа битов в адресе, длины слова.

|<-8-разр. ячейка, =1байт(8бит, слово)->| данные
П  Адрес 0 —> | 0|0 |0 |0 |1 |1 |0 |0 |

О  Адрес 1 —>  | 0|0 |1 |1 |1 |1 |0 |0 |

Л  Адрес 2 —> | 0|0 |1 |0 |1 |1 |0 |0 |

Е  Адрес 3 —> | 1|0 |1 |0 |1 |1 |0 |0 |
А  Адрес 4 —> | 0|0 |1 |0 |1 |1 |0 |0 |

Д  Адрес 5 —> | 0|0 |0 |0 |0 |1 |0 |0 |

Р   Адрес 6 —>| 0|0 |1 |0 |1 |1 |0 |0 |

Е  Адрес 7 —> | 1|0 |1 |1 |1 |1 |0 |1 |

С

А

max адр. памяти будет = 2(кол-во состояний ячейки 1/0) в степени 8(кол линий поля адреса) = 256.

 

Вас может заинтересовать подборка популярных статей посвященных диагностике и ремонту компьютеров
[smoothslider id=’1′]

Добавить комментарий