Сколько оперативной памяти может быть у x86 и почему

Обновлено: 02.07.2024

Я знаю, что 32-разрядные машины не могут использовать более 4 ГБ ОЗУ, поскольку они не могут обращаться к такому количеству адресов памяти.

Однако я не понимаю, почему почти все 32-разрядные операционные системы, включая Window 7, не могут использовать более 3,25 ГБ

2^32 = 4294967296 бит, что составляет 4 ГБ оперативной памяти. Однако на моей машине написано, что можно использовать только 3,25 ГБ. Почему нельзя использовать остальную часть ПАМЯТИ?

Я не спрашиваю, как это можно сделать. Я хочу знать, почему именно 3,25 ГБ. Как рассчитывается это значение. Откуда это?

@Ramhound, этот вопрос не отвечает на мой вопрос. Почему 3,25 ГБ? Почему не 4 Гб? Это ответ? Потому что Microsoft так хочет? Поскольку этот вопрос не является моим дубликатом, не могли бы вы удалить отрицательный голос, который вы мне дали?

Я не могу отменить голос, который не отдавал. Мне все еще кажется, что это дубликат. Вы же понимаете, что голосование анонимно по той причине, что это нужно для того, чтобы люди не ругали друг друга за голосование, с которым они не согласны

Первый дубликат содержит многочисленные ответы, объясняющие, что 32-разрядные версии Windows могут адресовать до 4 ГБ памяти.

1 Ответ 1

В 32-разрядной клиентской версии Windows физическое адресное пространство составляет 4 ГБ. Было бы неплохо, если бы все это пространство можно было использовать для оперативной памяти, но это не так. Часть этого адресного пространства используется аппаратными устройствами с отображением памяти. ЦП может взаимодействовать с этими устройствами, читая или записывая в их адресное пространство так же, как и в ОЗУ. Существуют и другие доступные методы, но оборудование с отображением памяти намного быстрее, что важно для высокопроизводительных устройств, таких как видеосистемы. Обычно устройства с отображением памяти потребляют от 0,5 до 1 ГБ, но в некоторых случаях может быть больше или меньше.

У вас не может быть сопоставленных устройств с 4 ГБ ОЗУ и от 0,5 ГБ до 1 ГБ в одном и том же адресном пространстве 4 ГБ. Это просто не подходит. Таким образом, любое пространство, используемое для аппаратных устройств, недоступно для оперативной памяти. Если у вас 3 ГБ или менее ОЗУ, адресное пространство обычно остается свободным, и ОЗУ не теряется.

Если адресное пространство, используемое для аппаратных устройств, вычесть из 4 ГБ, останется от 3 до 3,5 места для оперативной памяти. 3,25 ГБ — это обычное значение, и это число часто указывается.

Я полагаю, что все это можно было бы сделать по-другому, но это усложнило бы дизайн, а адресное пространство в 4 ГБ в то время было огромным. Изменение его сейчас может привести к серьезным проблемам с совместимостью. И у нас уже есть гораздо лучшее решение при использовании 64-битной ОС. 64-битная ОС имеет гораздо большее адресное пространство, поэтому места хватит для всего.

В качестве решения часто предлагается PAE. Это специальная настройка, позволяющая увеличить физическое адресное пространство. Конфликтующая оперативная память может быть адресована выше 4 ГБ, где она затем может быть адресована. Эта опция поддерживается 32-битными серверными операционными системами. Проблема заключалась в том, что многие драйверы устройств вели себя в такой среде очень плохо, что приводило к очень печальным результатам, таким как сбои или повреждение данных. По этой причине клиентские системы просто игнорируют оперативную память выше 4 ГБ. Это стало лицензионным ограничением и реализовано в ядре.

Поскольку PAE не работает в клиентских системах, а 32-разрядные серверы практически устарели, это, по сути, мертвая проблема.

В этом разделе описываются ограничения памяти для поддерживаемых выпусков Windows и Windows Server.

Ограничения на память и адресное пространство зависят от платформы, операционной системы и от того, используется ли значение IMAGE_FILE_LARGE_ADDRESS_AWARE структуры LOADED_IMAGE и 4-гигабайтная настройка (4GT). IMAGE_FILE_LARGE_ADDRESS_AWARE устанавливается или очищается с помощью параметра компоновщика /LARGEADDRESSAWARE.

Настройка 4 гигабайт (4GT), также известная как настройка памяти приложения или переключатель /3GB, представляет собой технологию (применима только к 32-разрядным системам), которая изменяет объем виртуального адресного пространства, доступного для приложений пользовательского режима. Включение этой технологии уменьшает общий размер виртуального адресного пространства системы и, следовательно, максимальное количество системных ресурсов. Дополнительную информацию см. в разделе Что такое 4GT.

Ограничения физической памяти для 32-разрядных платформ также зависят от расширения физических адресов (PAE), которое позволяет 32-разрядным системам Windows использовать более 4 ГБ физической памяти.

Ограничения памяти и адресного пространства

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

Ограничения физической памяти: Windows 11

В следующей таблице указаны ограничения на физическую память для Windows 11.

Версия Ограничение для X86 Ограничение для X64 Ограничение для ARM64
Windows 11 Enterprise 4 ГБ
6 ТБ
6 ТБ
Windows 11 для образовательных учреждений 4 ГБ
2 ТБ
< /td>
2 ТБ
Windows 11 Pro для рабочих станций 4 ГБ
6 ТБ
6 ТБ
Windows 11 Pro 4 ГБ
2 ТБ
2 ТБ
Windows 11 Home 4 ГБ
128 ГБ
128 ГБ

Ограничения физической памяти: Windows 10

В следующей таблице указаны ограничения на физическую память для Windows 10.

< td>4 ГБ
Версия Ограничение для X86 Ограничение для X64
Windows 10 Enterprise 4 ГБ
6 ТБ
Windows 10 Education 4 ГБ
2 ТБ
Windows 10 Pro для рабочих станций 6 ТБ
Windows 10 Pro 4 ГБ
2 ТБ
Windows 10 Home 4 ГБ
128 ГБ

Ограничения физической памяти: Windows Server 2016

В следующей таблице указаны ограничения на физическую память для Windows Server 2016.

Версия Ограничение на X64
Windows Server 2016 Datacenter 24 ТБ
Windows Server 2016 Standard 24 ТБ

Ограничения физической памяти: Windows 8

В следующей таблице указаны ограничения на физическую память для Windows 8.

Версия Ограничение для X86 Ограничение для X64
Windows 8 Enterprise 4 ГБ
512 ГБ
Windows 8 Professional 4 ГБ
512 ГБ
Windows 8 4 ГБ
128 ГБ

Ограничения физической памяти: Windows Server 2012

В следующей таблице указаны ограничения на физическую память для Windows Server 2012. Windows Server 2012 доступна только в выпусках X64.

Версия Ограничение на X64
Windows Server 2012 Datacenter 4 ТБ
Windows Server 2012 Standard 4 ТБ
Windows Server 2012 Essentials 64 ГБ
Windows Server 2012 Foundation 32 ГБ
Windows Storage Server 2012 Workgroup 32 ГБ
Windows Storage Server 2012 Standard 4 ТБ
Hyper-V Server 2012 4 ТБ

Ограничения физической памяти: Windows 7

В следующей таблице указаны ограничения на физическую память для Windows 7.

Версия Ограничение для X86 Ограничение для X64
Windows 7 Ultimate 4 ГБ
192 ГБ
Windows 7 Enterprise 4 ГБ
192 ГБ
Windows 7 Professional 4 ГБ
192 ГБ
Windows 7 Home Premium 4 ГБ
16 ГБ
Windows 7 Home Basic 4 ГБ
8 ГБ
Windows 7 Начальная 2 ГБ
Н/Д

Ограничения физической памяти: Windows Server 2008 R2

В следующей таблице указаны ограничения на физическую память для Windows Server 2008 R2. Windows Server 2008 R2 доступен только в 64-разрядных версиях.

Версия Ограничение для X64 Ограничение для IA64
Windows Server 2008 R2 Datacenter 2 ТБ
Windows Server 2008 R2 Enterprise 2 ТБ
Windows Server 2008 R2 для систем на базе Itanium 2 ТБ
Windows Server 2008 R2 Foundation 8 ГБ
Windows Server 2008 R2 Standard 32 ГБ
Windows HPC Server 2008 R2 128 ГБ
Windows Web Server 2008 R2 32 ГБ

Ограничения физической памяти: Windows Server 2008

В следующей таблице указаны ограничения на физическую память для Windows Server 2008. Ограничения более 4 ГБ для 32-разрядной версии Windows предполагают, что PAE включен.

< td>Windows Server 2008 HPC Edition

Ограничения физической памяти: Windows Vista

В следующей таблице указаны ограничения на физическую память для Windows Vista.

Версия Ограничение для X86 Ограничение для X64 Ограничение для IA64
Windows Server 2008 Datacenter 64 ГБ
1 ТБ
Windows Server 2008 Enterprise 64 ГБ
1 ТБ
128 ГБ
Windows Server 2008 Standard 4 ГБ
32 ГБ
Windows Server 2008 для систем на базе Itanium 2 ТБ
< /td>
Windows Small Business Server 2008 4 ГБ
32 ГБ
Windows Web Server 2008 4 ГБ
32 ГБ
< /таблица>

Ограничения физической памяти: Windows Home Server

Windows Home Server доступен только в 32-разрядной версии. Предел физической памяти – 4 ГБ.

Ограничения физической памяти: Windows Server 2003 R2

В следующей таблице указаны ограничения на физическую память для Windows Server 2003 R2. Ограничения свыше 4 ГБ для 32-разрядной версии Windows предполагают, что PAE включен.

Версия Ограничение для X86 Ограничение для X64
Windows Vista Ultimate 4 ГБ
128 ГБ
Windows Vista Enterprise 4 ГБ
128 ГБ
Windows Vista Business 4 ГБ
128 ГБ
Windows Vista Home Premium 4 ГБ
16 ГБ
Windows Vista Home Basic 4 ГБ
8 ГБ
Windows Vista Starter 1 ГБ
Windows Server 2003 R2 Datacenter Edition
Версия Ограничение для X86 Ограничение для X64
64 ГБ
(16 ГБ с 4GT)
1 ТБ
Windows Server 2003 R2 Enterprise Edition
64 ГБ
(16 ГБ с 4GT)
1 ТБ
Windows Server 2003 R2 Standard Edition
4 ГБ
32 ГБ

Ограничения физической памяти: Windows Server 2003 с пакетом обновления 2 (SP2)

В следующей таблице указаны ограничения на физическую память для Windows Server 2003 с пакетом обновления 2 (SP2). Ограничения свыше 4 ГБ для 32-разрядной версии Windows предполагают, что PAE включен.

Версия Ограничение для X86 Ограничение для X64 Ограничение для IA64
Windows Server 2003 с пакетом обновления 2 (SP2), Datacenter Edition
64 ГБ
(16 ГБ с 4GT)
1 ТБ
2 ТБ
Windows Server 2003 с пакетом обновления 2 (SP2), Enterprise Edition
64 ГБ
(16 ГБ с 4GT)
1 ТБ
2 ТБ
Windows Server 2003 с пакетом обновления 2 (SP2), Standard Edition
4 ГБ
32 ГБ

Ограничения физической памяти: Windows Server 2003 с пакетом обновления 1 (SP1)

В следующей таблице указаны ограничения на физическую память для Windows Server 2003 с пакетом обновления 1 (SP1). Ограничения свыше 4 ГБ для 32-разрядной версии Windows предполагают, что PAE включен.

Версия Ограничение для X86 Ограничение для X64 Ограничение для IA64
Windows Server 2003 с пакетом обновления 1 (SP1), Datacenter Edition
64 ГБ
(16 ГБ с 4GT)
1 ТБ
1 ТБ
Windows Server 2003 с пакетом обновления 1 (SP1), Enterprise Edition
64 ГБ
(16 ГБ с 4GT)
1 ТБ
1 ТБ
Windows Server 2003 с пакетом обновления 1 (SP1), Standard Edition
4 ГБ
32 ГБ

Ограничения физической памяти: Windows Server 2003

В следующей таблице указаны ограничения на физическую память для Windows Server 2003. Ограничения более 4 ГБ для 32-разрядной версии Windows предполагают, что PAE включен.

Windows Server 2003, Datacenter Edition
Версия Ограничение для X86 Ограничение для IA64
64 ГБ
(16 ГБ с 4GT)
512 ГБ
Windows Server 2003, Enterprise Edition
64 ГБ
(16 ГБ с 4GT)
512 ГБ
Windows Server 2003, Standard Edition
4 ГБ
Windows Server 2003, Web Edition
2 ГБ
Windows Small Business Server 2003
4 ГБ
Windows Compute Cluster Server 2003
32 ГБ
Windows Storage Server 2003, Enterprise Edition
8 ГБ
Windows Storage Server 2003
4 ГБ

Ограничения физической памяти: Windows XP

В следующей таблице указаны ограничения на физическую память для Windows XP.

Версия Ограничение для X86 Ограничение для X64 Ограничение для IA64
Windows XP 4 ГБ
128 ГБ
128 ГБ (не поддерживается)
Windows XP Starter Edition 512 МБ
Н/Д
Н/Д

Ограничения физической памяти: Windows Embedded

В следующей таблице указаны ограничения на физическую память для Windows Embedded.

Версия Ограничение для X86 Ограничение для X64
Windows XP Embedded
4 ГБ
Windows Embedded Standard 2009
4 ГБ
Windows Embedded Standard 7
4 ГБ
192 ГБ

Как видеокарты и другие устройства влияют на ограничения памяти

Устройства должны отображать свою память менее 4 ГБ для совместимости с выпусками Windows, не поддерживающими PAE. Таким образом, если в системе установлено 4 ГБ ОЗУ, часть из них либо отключена, либо переназначается BIOS выше 4 ГБ. Если память перераспределена, X64 Windows может использовать эту память. Клиентские версии Windows X86 не поддерживают физическую память выше отметки 4 ГБ, поэтому они не могут получить доступ к этим переназначенным областям. Любой выпуск X64 Windows или X86 Server может.

Версии клиента X86 с включенным PAE имеют пригодное для использования 37-битное (128 ГБ) физическое адресное пространство. Ограничение, накладываемое этими версиями, — это максимально допустимый адрес физической памяти, а не размер пространства ввода-вывода. Это означает, что драйверы с поддержкой PAE могут фактически использовать физическое пространство более 4 ГБ, если захотят. Например, драйверы могут отображать «потерянные» области памяти, расположенные выше 4 ГБ, и отображать эту память как электронный диск.

Я думаю, что вопрос звучит ясно, но для дальнейшего объяснения:

Предположим, у нас есть ПК с Windows 7 x64 и 8 ГБ оперативной памяти; (64-битная ОС с 32-битным процессом)

Вопрос 1. Сколько памяти может использовать 64-разрядный процесс в этой среде?

Вопрос 2: сколько памяти может использовать 32-разрядный процесс в этой среде?

3 ответа 3

Вопрос 1: сколько памяти может использовать 64-битный процесс в этой среде?

Он может использовать всю вашу память.

Вопрос 2: сколько памяти может использовать 32-битный процесс в этой среде?

Для исполняемого файла x86 на компьютере с архитектурой x64 по умолчанию используется 2 ГБ. Если установлен IMAGE_FILE_LARGE_ADDRESS_AWARE, он может использовать 4 ГБ. MSDN .

Интересно, что исполняемый файл x64 может использовать не более 2 ГБ на машине x64, если IMAGE_FILE_LARGE_ADDRESS_AWARE не установлен или не очищен.

Нет, 4 ГБ

В операционной системе защищенного режима с подкачкой по требованию, такой как Windows, объем доступной оперативной памяти совершенно не связан с объемом виртуальной памяти, который может использовать процесс. Ограничивающим фактором является объем виртуальной памяти, который может поддерживать файл подкачки. Файл подкачки в Windows начинается с размера, который определяется во время загрузки и в настройках реестра. Оттуда Windows может увеличить размер файла подкачки, если это необходимо, когда процессам требуется больше памяти.

сколько памяти может использовать 64-битный процесс в этой среде?

Это непредсказуемо, но по крайней мере столько же, сколько текущее доступное пространство в файле подкачки. Обычно вы получаете около 13 гигабайт. Это пространство может расти как на дрожжах, при втором запуске программы оно, вероятно, сможет потреблять больше памяти, так как Windows догнала бы и увеличила файл подкачки. Вы можете увидеть это в действии в этой записи блога Марка Руссиновича.

сколько памяти может использовать 32-битный процесс в этой среде?

По умолчанию это 2 гигабайта. Бит опции, учитывающий большие адреса, в заголовке EXE программы может увеличить его до 4 гигабайт. В большинстве 32-разрядных программ эта опция отключена.

Если 32-разрядный процесс может использовать только 2 ГБ оперативной памяти в этой среде.

Либо 2, либо 4 гигабайта, а не 3. И еще раз подчеркиваю, к оперативной памяти это не имеет никакого отношения. Даже на машине с 8 ГБ ОЗУ 32-разрядный процесс с LAA очень вряд ли когда-либо займет 4 ГБ ОЗУ. Оперативная память — это общий ресурс, все процессы нуждаются в ней. Вполне вероятно, что часть 32-разрядного процесса, занимающего 4 ГБ, будет выгружена.


Джейсон Фитцпатрик


Джейсон Фитцпатрик
Редактор по особым поручениям

Джейсон Фитцпатрик — главный редактор LifeSavvy, дочернего сайта How-To Geek, посвященного лайфхакам, советам и рекомендациям. Он имеет более чем десятилетний опыт публикации и является автором тысяч статей для Review Geek, How-To Geek и Lifehacker. Джейсон работал редактором Weekend Lifehacker до того, как присоединился к How-To Geek. Подробнее.


Большинство людей переходят с 32-разрядных вычислений на 64-разрядные вычисления, чтобы преодолеть ограничение в 4 ГБ ОЗУ, но как далеко вы сможете превысить этот предел, когда войдете в область 64 ГБ? -битные компьютеры?

Сегодняшняя сессия вопросов и ответов проводится благодаря SuperUser — подразделению Stack Exchange, группы веб-сайтов вопросов и ответов, управляемой сообществом. Изображение Петра Кратохвиля.

Вопрос

КингНестор, читатель SuperUser, интересуется, сколько оперативной памяти может вмещать 64-разрядный компьютер:

Я читаю свою книгу по компьютерной архитектуре и вижу, что в 32-битном процессоре x86 счетчик команд равен 32 битам.

Итак, число байтов, которое он может адресовать, равно 2^32 байта или 4 ГБ. Поэтому для меня имеет смысл, что большинство 32-битных машин ограничивают объем оперативной памяти до 4 ГБ (игнорируя PAE).

Правильно ли я предполагаю, что 64-битная машина теоретически может адресовать 2 ^ 64 байта или 16 < em>экзабайт оперативной памяти?!

Вы говорите, эксабайты? Ну-ну, не будем жадничать. Мы были бы рады начать с терабайта или двух.

Ответ

Ответы на вопрос КингНестора представляют собой интересное сочетание практических и теоретических соображений. Мэтт Болл дает теоретический ответ:

Конрад Дин вмешивается с примечанием о том, что было бы совершенно непрактично максимально использовать теоретический предел оперативной памяти, используя современные технологии:

В дополнение к ответу Мэтта Болла скажу, что в настоящее время самая большая планка оперативной памяти, которую я могу найти в одном конкретном интернет-магазине, составляет 32 ГБ. Чтобы достичь 1 терабайта, потребуется 32 из них. Приблизительно полдюйма на планку это дает нам выделенное 16 дюймов места на вашей материнской плате для терабайта оперативной памяти. Чтобы достичь 16,8 млн терабайт, материнской плате потребуется 4 242,42 мили. Расстояние от Лос-Анджелеса до Нью-Йорка составляет примерно 2141 милю, поэтому материнская плата будет растягиваться по всей стране и обратно, чтобы вместить столько оперативной памяти.

Очевидно, что это нецелесообразно.

А как насчет того, чтобы мы этого не делали? не помещаем нашу оперативную память в один ряд, как на большинстве материнских плат, а размещаем их бок о бок. Я хочу сказать, что средняя палка барана имеет длину около шести дюймов, поэтому, если мы допустим полдюйма для ширины, вы можете получить квадратную единицу из 12 палочек барана в 6-дюймовом квадрате. Назовем этот квадрат RAM-плиткой. Затем плитка RAM содержит 384 ГБ ОЗУ. Чтобы достичь требуемых 16,8 млн терабайт в плитках по 384 ГБ, потребуется 44,8 миллиона плиток. Давайте будем неряшливыми и возьмем квадратный корень из этого, чтобы сделать вывод, что это уместится в квадрате 6693 на 6694 плитки, или 13 386 на 13 388 футов, что достаточно близко к 2,5 футам в квадрате, достаточно, чтобы покрыть центр Сиэтла тенью, как если бы им уже не на что жаловаться.

Обратите внимание, что ни один из существующих 64-разрядных процессоров x86 не может этого сделать. Их кеши не имеют достаточного количества бит тегов, их адресные шины не имеют достаточной ширины и так далее. 46-бит (8 ТБ) — это максимум для многих современных процессоров x86.

Есть что добавить к объяснению? Отключите звук в комментариях. Хотите узнать больше ответов от других технически подкованных пользователей Stack Exchange? Ознакомьтесь с полной веткой обсуждения здесь.

  • › Почему не было Windows 9?
  • › Как установить Google Play Маркет в Windows 11
  • › Что означает XD и как вы его используете?
  • › Как восстановить метки панели задач в Windows 11
  • › Почему прозрачные чехлы для телефонов желтеют?
  • ›5 шрифтов, которые следует прекратить использовать (и лучшие альтернативы)

Читайте также: