Клуб любителей научной фантастики, фэнтези и мистики

Автор Тема: Есть ли 4 гигабайта на 32х битах  (Прочитано 40191 раз)

Есть ли 4 гигабайта на 32х битах
« Ответ #15 : Мая 25, 2010, 12:01:25 »

2Dem

  • Древний
  • Сообщений: 1336
    • Просмотр профиля
    • http://
Цитировать
Проще говоря Windows 32bit видит то адресное пространство, которое осталось от 4-х ГБ, после резервирования адресов для обращений к оборудованию. Прошу заметить, что эти адреса резервирует сама Windows, а не кто-то там в 1985 году. Сама Windows 32bit так построена, поэтому она и не видит больше памяти. Но это можно обойти...
Вот теперь согласен. Собственно я как раз об этом и говорил))) Просто изначально немного некорректно было сказано, что 32-х битная система не может адресовать более 4 гигов памяти, что в принципе не верно, так как на самом деле она просто не может увидеть из-за вышеперечисленных ограничений, а не из-за того, что не хватает разрядности. Но кое с чем все же не соглашусь. Решение о резервировании адресного пространства после 3 гигов принимал не только Гейтс, это было решение группы производителей, хотя это уже детали))
Наплевать мне на Каддаффи, мне насрать на Фукусиму.
Саша Грей ушла из порно, мне теперь невыносимо...

Есть ли 4 гигабайта на 32х битах
« Ответ #16 : Мая 25, 2010, 12:58:40 »

flickshtain

  • Древний
  • Сообщений: 1026
    • Просмотр профиля
Цитировать
BIOS
Итак, первая напасть, которая часто одолевает пользователей, установивших 4 Гб памяти в систему, – это неправильное определение ее объема в BIOS’е. Как правило, в этом случае отображается от чуть менее 3 Гб до примерно 3.8 Гб – в зависимости от системы и ее конфигурации. В этом случае первое, с чего стоит начать, – это проверка материнской платы на совместимость. Загляни в мануал к плате – объем поддерживаемой памяти должен составлять не менее 4 Гб. Для серверных мамок этот показатель, само собой, может быть гораздо больше, но в данном материале мы будем говорить именно о desktop-решениях, равно как и о 32-битных операционных системах.

Теперь поясним, куда же деваются «лишние» мегабайты. Дело в том, что все 32-битное адресное пространство невозможно отдать только лишь под приложения. Ресурсы системы, будь то чипсет, PCI-устройства и особенно видеокарта, также нуждаются в «месте под солнцем», то есть им необходимо присвоить определенный диапазон адресов. И если масштаб, в котором может действовать BIOS, составляет всего 4 Гб, то объем памяти, зарезервированный под оборудование, приходится отделять от оперативки. В противном случае неизбежно могут возникнуть конфликты между приложениями и системными устройствами.

Современные материнские платы решают эту проблему несколькими способами. Некоторые модели изначально правильно определяют объем памяти без каких-либо ухищрений – в этом случае считай, что тебе повезло . Другие решения требуют нашего вмешательства – как правило, в их BIOS’ах присутствует настройка «Memory Remap Feature» (название может варьироваться). Эта функция переназначает сегмент памяти, выделяемый устройствам, за пределы четырех гигабайт – таким образом, система начинает видеть твою память целиком уже на этапе загрузки. Если же подобной функции или ее вариантов в BIOS’е нет, а система упорно не желает видеть всю память, нам остается только посочувствовать – в этом случае «медицина бессильна». Впрочем, всегда остается возможность обновить прошивку материнской платы до последней версии – вполне вероятно, что это исправит проблему или хотя бы добавит в BIOS вожделенный пункт. Заметим, что в случае с Windows XP SP2 включение данной опции не только не принесет пользы, но и усугубит ситуацию, хотя об этом мы поведаем чуть ниже.

Если матплата не имеет в настройках BIOS Memory Remap Feature, это еще не значит, что она не работает с увеличенным объемом памяти. К примеру, когда мы установили четыре планки по 1 Гб в Gigabyte GA-965P-S3, плата сразу определила ровно 4 гигабайта, при этом в BIOS’е никаких настроек по перемещению выделяемого под устройства диапазона адресов не было.

Итак, когда система определила всю доступную ей память, наступает момент перейти к следующему пункту – поддержке на уровне операционных систем. Но сначала еще одно лирическое отступление…


PAE и AWE – красивый «обман»
Теперь ты знаешь, что адресное пространство для 32-битной операционки ограничено четырьмя гигабайтами. Спешим тебя обрадовать – эта проблема во многих случаях решаема и без использования 64-битных осей. Более того, о ее решении позаботились задолго до того, как ты впервые подумал о возможности установки в систему четырех гигов – в 1995 году. Именно тогда на арену вышел процессор Intel Pentium Pro с поддержкой технологии PAE – Physical Address Extension…

Что же означает эта загадочная аббревиатура? Если вкратце, то данная технология позволяет процессору работать не с 32-битной, а с 36-битной адресацией, теоретически расширяя доступные ему адреса до 2^36 = 68719476736 байт (64 Гб). При этом само адресное пространство остается 32-битным, то есть равным 4 Гб, но за счет измененного отображения на него физической памяти становится возможным использование куда большего ее объема.

Разумеется, поддержка PAE имеется и в Windows – в этом и содержится ключ к детектированию полного объема оперативной памяти. Проблема в том, что не всегда технология включена по умолчанию – для ее использования должна загружаться специальная версия ядра. На данный момент поддержка PAE имеется у следующих операционок:

Windows 2000 Advanced Server
Windows 2000 Datacenter Server
Windows XP (все версии)
Windows Server 2003 (and SP1), Standard Edition
Windows Server 2003, Enterprise Edition
Windows Server 2003, Datacenter Edition
Windows Server 2003 SP1, Enterprise Edition
Windows Server 2003 SP1, Datacenter Edition
Windows Vista (все версии, кроме Starter Edition – у нее поддержка памяти ограничена 1 Гб)

Заметим, что если твой процессор поддерживает аппаратную антивирусную защиту NX-bit, то, вполне вероятно, что PAE в системе уже включена. Дело в том, что поддержка NX-bit со стороны Windows может работать только при включении данной опции, причем Windows XP SP2 и 2003 Server SP1 в большинстве случаев сами определяют наличие этого бита и устанавливают, какое ядро необходимо загружать. Если же PAE отключена (об этом можно узнать в окне «Свойства системы» или же с помощью утилиты вроде Everest), то ее необходимо активировать. Как это сделать, мы поясним ниже на примере различных операционок.

Теперь о плохом: даже если Windows определит всю доступную память, пользу это принесет, в лучшем случае, твоему самолюбию. Причина в том, что область памяти за пределами 4 Гб в 32-битной среде может быть доступна только приложениям, написанным с использованием интерфейса AWE (Address Windowing Extension). Проще говоря, если PAE – это поддержка большого объема памяти со стороны железа и операционки, то AWE – это ее поддержка со стороны софта. И вся проблема в том, что такой поддержкой обладает разве что софт, оперирующий огромными объемами данных – к примеру, СУБД или программы, выполняющие сложные научные расчеты. Играм или офисному софту это попросту не нужно, соответственно, и прироста производительности в них ты не увидишь. А вот какой-нибудь Microsoft SQL Server получит очень даже ощутимую пользу!

И ещё:
http://www.xakep.ru/post/45815/default.asp
и вот:
http://msdn.microsoft.com/en-us/library/aa366778.aspx
и это тоже:
http://blogs.technet.com/mark_russinovich/...21/3151288.aspx
« Последнее редактирование: Мая 25, 2010, 13:38:50 от flickshtain »
Всё закончится на кладбище, поэтому не стоит терять времени...

Есть ли 4 гигабайта на 32х битах
« Ответ #17 : Мая 25, 2010, 13:22:11 »

2Dem

  • Древний
  • Сообщений: 1336
    • Просмотр профиля
    • http://
Цитировать
для "взаимной синхронизации и общего управления" - надо много-много-многобитную операционку
либо грамотно построенный кластер)))
Наплевать мне на Каддаффи, мне насрать на Фукусиму.
Саша Грей ушла из порно, мне теперь невыносимо...

Есть ли 4 гигабайта на 32х битах
« Ответ #18 : Мая 25, 2010, 18:00:52 »

barbarus

  • Джаффа
  • Сообщений: 73
    • Просмотр профиля
Цитата: flickshtain
А кто возражает? Кто сказал, что у нас в голове только один процессор? Меня например, радует мысль, что система, возможно мультипроцессорная! Но как вы и сказали, для "взаимной синхронизации и общего управления" - надо много-много-многобитную операционку...
ну, она не возможно, а посути такая и есть. там же разные отделы мозга отвечают за разные задачи. а не одна часть изображения глаза обрабатывается в лобной доли, другая в теменной =)
просто многие процы еще сегодня неизвестно чем занимаются, а большая часть и простаивает без прошивки

Есть ли 4 гигабайта на 32х битах
« Ответ #19 : Мая 25, 2010, 19:17:55 »

2Dem

  • Древний
  • Сообщений: 1336
    • Просмотр профиля
    • http://
Так же стоит добавить, что фактически для эмуляции головного мозга не только не требуется большая разрядность, более того, она особо и не нужна. Доступ к большим объемам информации тут вовсе не причина, у многих еще остались 32-х битные процессоры с соответствующими осями, а какого объема используются винты))) Так что 64 бита для мозга будет вполне достаточно. Про сигнальные и RISC-процессоры я уже говорил. А чтобы все это слаженно работало опять-таки уже существуют две технологии - нейронная сеть и кластер. В какой пропорции мешать и что более приоритетно можно поспорить, но для обоих вариантов большая разрядность не нужна. Так что единственное, что останавливает от создания искусственного мозга, это отсутствие необходимого программного обеспечения, даже в теоретической форме. И недостаточная скорость современных процессоров. Тут я имею ввиду не их частоту, а конечное время переключения каждого отдельно взятого транзистора, которое пока очень далеко от необходимого...
Наплевать мне на Каддаффи, мне насрать на Фукусиму.
Саша Грей ушла из порно, мне теперь невыносимо...

Есть ли 4 гигабайта на 32х битах
« Ответ #20 : Мая 25, 2010, 22:47:05 »

artyom2000

  • Новичок
  • Сообщений: 27
    • Просмотр профиля
Я программист ассемблера, в том числе защищенного режима. Windows 95/98 сначала стартует в обычном режиме, где как раз доступен только 1Mb, потом переходит в защищенный, где уже 4GB, а потом там можно нажать "Выход" в меню и Windows переходит в обычной режим DOS. А Windows 2000/XP и выше сразу стартует в защищенном режиме и сразу может 4GB юзать)) Но тема не об этом, поэтому предлагаю если интересно обсудить этот вопрос в привате.


Цитата: flickshtain
Ну во первых, зачем же так резко? Во вторых, вы ошибаетесь. Хочу вам сказать, как техник по ремонту компьютеров, что 32-ух битная система, будь то Windows 2000 или Windows 7, не может адресовать больше ~3.25 GB памяти. Эта цифра немного меняется в зависимости от используемого процессора. Например 4-ёх ядерный Phenom AMD на Windows 7, использует 3.37 GB. А мобильные CPU - примерно 2.5 GB. И это при том, что физически, во всех  стоит 4

Есть ли 4 гигабайта на 32х битах
« Ответ #21 : Мая 25, 2010, 23:04:31 »

2Dem

  • Древний
  • Сообщений: 1336
    • Просмотр профиля
    • http://
Давайте не будем эгоистами, чтобы такую интересную тему в привате обсуждать))
« Последнее редактирование: Мая 25, 2010, 23:13:48 от 2Dem »
Наплевать мне на Каддаффи, мне насрать на Фукусиму.
Саша Грей ушла из порно, мне теперь невыносимо...

Есть ли 4 гигабайта на 32х битах
« Ответ #22 : Мая 26, 2010, 00:01:12 »

Normad

  • Азгард
  • Сообщений: 329
    • Просмотр профиля
сказал великий гуру ))))))))))))))

Есть ли 4 гигабайта на 32х битах
« Ответ #23 : Мая 26, 2010, 00:16:44 »

flickshtain

  • Древний
  • Сообщений: 1026
    • Просмотр профиля
Понимаете, дело совсем не в том, что я варюсь в этом супе 15 лет. Дело скорее, в корректности выражений. Да действительно 32 - битная операционная система, может адресовать МАКСИМУМ 4 ГБ физической памяти. В этот объём входят также и адреса обращения к оборудованию. И чем больше оборудования, тем больше памяти вычитается из этих 4 ГБ. Но факт остаётся 32 - битные операционные системы, оганичены 4-мя ГБ, именно из-за своей разрядности.

2^32=4294967296 байт – вот предел адресного пространства для 32-битной ситемы.
2^64=18446744073709551616 - предел для 64 - битной системы.

Важно отметить, что речь идёт только об электронной физической памяти, ко всем адресам которой есть прямой доступ. Сюда НЕ входят жёсткие диски, и другие носители.
« Последнее редактирование: Мая 26, 2010, 00:30:42 от flickshtain »
Всё закончится на кладбище, поэтому не стоит терять времени...

Есть ли 4 гигабайта на 32х битах
« Ответ #24 : Мая 26, 2010, 00:29:28 »

Kiska22

  • Джаффа
  • Сообщений: 85
    • Просмотр профиля
    • http://
Интересно, а с каких пор беззнаковое unsigned long (Cardinal), 4-ех байтовое (32 битное) слово может быть больше самого себя, то есть 4 гб (4294967295)?
А вот меньше очень даже может быть.  

Например, в знаковом варианте этого типа, или в операционных системах майкософт.

Хочется больше? Тогда надо приклеить пару тройку бит.
(Боже упаси от всяких PAE, и да прибудет 64 бита со страждущими).

 
« Последнее редактирование: Мая 26, 2010, 00:32:04 от Kiska22 »

Есть ли 4 гигабайта на 32х битах
« Ответ #25 : Мая 26, 2010, 00:55:46 »

2Dem

  • Древний
  • Сообщений: 1336
    • Просмотр профиля
    • http://
Цитировать
Важно отметить, что речь идёт только об электронной физической памяти, ко всем адресам которой есть прямой доступ. Сюда НЕ входят жёсткие диски, и другие носители.
Скорее речь идет о массиве, к которому в данный момент происходит обращение, а не о всей электронной физической памяти. Но таких массивов может быть множество. Так что все-таки возможности 32-х битной архитектуры не ограничены 4 гигами, проблема только в реализации. Более того, отбрасывать жесткие диски и другие носители некорректно, так как даже принимая во внимание, что передача данных идет через более широкие по битности каналы, но обработка все равно происходит с максимальной для процессора разрядностью...
Наплевать мне на Каддаффи, мне насрать на Фукусиму.
Саша Грей ушла из порно, мне теперь невыносимо...

Есть ли 4 гигабайта на 32х битах
« Ответ #26 : Мая 26, 2010, 02:38:51 »

flickshtain

  • Древний
  • Сообщений: 1026
    • Просмотр профиля
Мне думается, что разница именно в способе доступа. Жёсткие диски, даже SSD, значительно медленнее любой памяти. Не только сами диски, но и их контроллеры. Поэтому обмен данными всё равно происходит в буффере оперативной памяти. При этом на диске выделяется небольшой участок адресов, нужный в данный момент, а не всё его пространство. В отличии от памяти, которая доступна сразу вся. А процессор оперирует только теми данными, которые поступают от операционной системы. И если она 32 битная, то и процессор оперирует 32 - битными словами.

Цитировать
Интересно, а с каких пор беззнаковое unsigned long (Cardinal), 4-ех байтовое (32 битное) слово может быть больше самого себя, то есть 4 гб (4294967295)?
А вот меньше очень даже может быть.
Полностью согласен...
« Последнее редактирование: Мая 26, 2010, 02:44:14 от flickshtain »
Всё закончится на кладбище, поэтому не стоит терять времени...

Есть ли 4 гигабайта на 32х битах
« Ответ #27 : Мая 26, 2010, 02:48:40 »

2Dem

  • Древний
  • Сообщений: 1336
    • Просмотр профиля
    • http://
То, о чем мы спорим, можно назвать максимальным объемом адресного пространства для одномоментного обращения. А тут действительно ничего не попишешь, 4 гига предел...
« Последнее редактирование: Мая 26, 2010, 02:50:34 от 2Dem »
Наплевать мне на Каддаффи, мне насрать на Фукусиму.
Саша Грей ушла из порно, мне теперь невыносимо...

Есть ли 4 гигабайта на 32х битах
« Ответ #28 : Мая 26, 2010, 10:31:34 »

flickshtain

  • Древний
  • Сообщений: 1026
    • Просмотр профиля
Вот вот! Большинство споров из-за этого происходят. Люди говорят об одном и том же, в разных выражениях, и ни как друг друга не поймут.
Обидно, клянусь, честное слово...
Всё закончится на кладбище, поэтому не стоит терять времени...