Какое максимальное количество оперативной памяти теоретически может адресовать 64-битная машина?


21

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

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

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


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

4
Теоретически, нет предела. Даже 32-разрядные процессоры могут иметь адресное пространство выше 4 ГиБ. Это зависит от того, как система управления памятью реализована аппаратно , что обычно не зависит от длины слова процессора. Указатели в программах всегда имеют длину слова, но в любом случае это виртуальные адреса (а не физические), поэтому они дополнительно отображаются в другое адресное пространство.
Прорыв

Это старый вопрос со старыми ответами, но я чувствую, что большинство проголосовавших ответов на этот вопрос очень вводят в заблуждение, и они являются ответами на вопрос о том, сколько ОЗУ может иметь машина с 64-битной адресной шиной . Как указали выше David и Breakthrough, «разрядность» архитектуры отражает размер первичных регистров, а не размер адресной шины.
Себи

Почему вы игнорируете PAE?
Джейми Ханрахан

Ответы:


28

Теоретически: 16,8 миллиона терабайт. На практике: корпус вашего компьютера слишком мал, чтобы вместить всю эту оперативную память.

http://en.wikipedia.org/wiki/64-bit#Limitations_of_practical_processors


13
Слишком маленький .... сегодня !!!!
Snicker

2
16,777216 миллионов тебибайт. Если вы хотите быть точным.
Тотимедли

Я читал в других источниках, что процессор не может использовать каждый бит для доступа к памяти, учитывается ли это в вашем ответе?
Андрей

17

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

Понятно, что это нецелесообразно.

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


2
Слишком большой. Почему вы кладете их на квартиру? Вы можете получить все это в 100-футовом кубе. Возможно, вам понадобится жидкий азот, чтобы он остыл.
Лорен Печтел

1
количество газообразного азота, которое могло бы закипеть, могло бы создать угрозу безопасности для великих людей Сиэтла
Conrad.Dean

Одна возможная коррекция. Так как размер плитки 6 на 6 дюймов, это не означает, что площадь 3346,5 на 3347 футов (половина количества плиток), а не 13,386, что в два раза превышает количество плиток. Кроме того, еще одна проблема, о которой никто не упоминал. Предположим, наилучшее расположение: круг, радиус должен быть около 1890 футов, чтобы охватить необходимую область. Как отметил Адм, Грейс Хоппер, задержка передачи по меди составляет около наносекунды / фут. Это означает, что задержка прохождения сигнала в оба конца до внешнего кольца будет составлять ~ 3,78 микросекунды. Это немного на медленной стороне для основной памяти. IMEHO.
dgnuff

4

По сути, да - процессы теоретически могут адресовать 2 ^ 64 байта памяти. Но, как вы указали, есть пределы этому пределу.


3

Не существует конкретной фиксированной связи между размером в битах процессора и объемом адресуемой памяти. Большинство 8-битных машин конца 1970-х годов могли легко получить прямой доступ к 65 536 байтам, 16-битные 8088 и 8086 могли напрямую получить 1 048 576 байт. Кроме того, можно добавить аппаратное обеспечение, чтобы машины могли получать косвенный доступ к любому количеству оперативной памяти; многие машины с 8-разрядными процессорами имели 128 КБ или более, а модули расширения памяти для ПК на базе 8088 могли получить доступ более чем к 16 мегабайтам. Хотя Microsoft включала такую ​​функцию только в «серверных» версиях Windows, 32-битный код мог получить доступ к памяти за пределами 4GiB, используя аналогичные подходы.


2

Вы были бы правы. Вы можете адресовать до 16 эксабайт оперативной памяти. Теперь ... может ли операционная система справиться с этим, это был бы другой вопрос ....


2

Также было бы хорошо отметить, что операционная система имеет свое собственное ограничение памяти в 64-битной архитектуре.

Например, посмотрите, что википедия говорит о Windows Vista 64:

Все 64-разрядные версии операционных систем Microsoft в настоящее время ограничивают адресное пространство 16 ТБ. Процессы, созданные в 64-разрядных выпусках Windows Vista, могут иметь 8 ТБ виртуальной памяти для пользовательских процессов и 8 ТБ для процессов ядра для создания виртуальной памяти 16 ТБ. [29] Что касается физической памяти, Windows Vista 64-Bit Basic поддерживает до 8 ГБ ОЗУ, Windows Vista 64-Bit Home Premium поддерживает до 16 ГБ ОЗУ, а Windows Vista 64-Bit Business / Enterprise / Ultimate поддерживает до 128 ГБ. оперативной памяти. [8]



1

Самым большим преимуществом для 64 бит является не оперативная память, которую он может адресовать, а все остальное. Например, вы можете определить адрес для каждого байта на диске, и увеличение емкости диска не сделает его недействительным в течение десятилетий.


Конечно, поскольку современные процессоры имеют это адресное пространство искусственно ограниченным, может пройти всего десять лет, прежде чем не хватит битов для адресации каждого байта на диске. Надеемся, что на этом этапе ограничения будут увеличены, так как образуются твердотельные накопители, в результате чего весь диск выглядит как раздел памяти, что может значительно повысить производительность. Я не против подключить SSD к слоту RAM, а не к кабелю SATA!
Malvineous

@ Malvineous Я говорил о чем-то более фундаментальном, даже если вы ограничитесь 63 битами, вы можете напрямую обратиться к 9223372 ТБ. И твердотельные накопители в слоте RAM уже существуют, см. Sandisk .
Марк Рэнсом

Я не был с вами не согласен, я просто указывал, что с текущей технологией существуют искусственные ограничения на то, что вы предлагаете (например, только 48 или 51 бит адреса, выводимого на физическую шину). Если эти DIMM-твердотельные накопители завоевывают популярность, у нас могут закончиться адреса памяти раньше, чем вы предлагаете, если эти искусственные ограничения не могут быть увеличены или удалены. Я согласен, если бы были доступны все 64-битные версии, то прошло бы десятилетия, прежде чем это станет проблемой
Malvineous

Просто для справки я посмотрел ссылку SanDisk UlltraDIMM, но, к сожалению, технически это не SSD-как-RAM. Это SATA SSD 6 Гбит / с, с адаптером DDR3-SATA, позволяющим получать к нему доступ как к памяти. Дополнительное преобразование запросов памяти в протокол SATA вносит некоторую задержку и выглядит немного грязно. Надеюсь, кто-то увидит пользу от этого и вскоре выпустит настоящий интерфейс памяти для прошивки без каких-либо ненужных адаптеров между ними!
Malvineous

0

Большинство современных процессоров имеют своего рода искусственное ограничение на размер своего адреса. Например, архитектура AMD64 имеет 52-битное ограничение на физическую память и в настоящее время поддерживает только 48-битное виртуальное адресное пространство. (Через Википедию). Однако да, физически ~ 16,4 миллиона терабайт возможно.


-1

за реалистичный физический ответ 1536 ГБ с 48 картами ОЗУ с 32-гигабайтными одиночными палками и 4-мя ксенонами lga2011

это для esayist pc, который кто-то может купить, не нарушая скрытые хардкорные серверы, думают, что theres 64gb единственные статьи приносят к .... 3072gb 128gb будет 6144gb 256gb будет 12288gb

просто чтобы показать, что есть способы обойти ограничения OS с помощью оперативной памяти, если в операционной системе Windows видно только 4 ГБ оперативной памяти, превращающей оставшийся диск в оперативную память и использование оперативной памяти в качестве файла подкачки. XD XD XD XD - просто вопрос предварительной загрузки ОС. Система некоторые подобные вещи были сделаны еще в первые дни DOS / Windows 3.11 и т. д.

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

снаряжение, которое мы видим, неужели там нет ничего более мощного, у меня был компьютер из 98 с 8 процессорами и что-то вроде 32 ГБ оперативной памяти, но это дорогое привет-серверы

я смотрю на серверы в качестве рабочих столов, потому что я устал от компьютеров для общественности XD

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.