2016-12-19 15 views
-1

теперь я знаю, что этот вопрос задан довольно много раз, но мне не интересно, сколько памяти 32-битный процессор не может решить ни теоретически, ни практически. просто быстрый хедз-ап, я родом из гражданского строительства, поэтому я все еще учился с точки зрения компьютерных наук; а также единицы измерения для меня - это большой вопрос, который на самом деле мой вопрос:32bit cpu: сколько памяти он может использовать?

Теперь я знаю, что вы можете рассчитать, сколько памяти процессор может использовать, выполнив 2^32 (или 64), и в этом случае вы получите 4.294 .967,296 бит. Теперь я знаю (или я думаю, что знаю) память измеряется в байтах, поэтому, чтобы узнать, сколько байтов памяти может использовать процессор, я разделяю 4.294.967.296/8, и вы получите 536.870.912 байт. , тогда вы разделите 536.870.912/1024 и получите 524.288 килобайт. , тогда вы разделите 524.288/1024 и получите 512 мегабайт. , тогда вы разделите 512/1024 и получите 0,5 гигабайта, который ... не велик.

теперь я заметил, что если вы не разделите на 8 в начале, вы получите 4 гигабита; поэтому мой вопрос: измеряется ли бит в битах или байтах. , и если это сейчас, то какова связь между битами адреса процессора и емкостью памяти?

+2

Память адресуется в байтах. – Phylogenesis

+1

"* и в этом случае вы получите 4.294.967.296 бит *" - нет. Вы получаете байты из этого расчета. В _theory_ 32-битный процессор может иметь адрес 4 ГБ, но на практике это обычно всего 2 ГБ из-за физического дизайна (хотя и не знаю точных данных) и примерно 1,5 ГБ из-за пределов операционной системы –

+0

@a_horse_with_no_name ограничение 2GiB это программный дизайн :) Из-за MMIO некоторые физические адреса должны использоваться устройствами, но не более 2GiB. Кроме того, 32-разрядная машина может получить доступ к памяти произвольного размера, что не учитывает размер регистра, но 1) размер шины/физического адреса 2) размер слова памяти. Хотя OP, вероятно, спрашивает о x86, в этом случае 2) уменьшает, как вы правильно сказали, к байтам [еще 1) все равно может быть 32 или 36 бит]. –

ответ

-1

Память сделан ряд чтения перезаписываемых элементов, называется слова.
Каждому изделию присваивается уникальный номер, который называется адрес.

ЦП имеет фиксированное количество бит/контактов для представления адреса.
Один бит может представлять адреса 0 и 1.
Два бита представляют собой не более 00, 01, 10, 11.
Три бита представляют ... ну вы его получили.

Каждый бит имеет два значения, каждый бит не зависит от других, поэтому каждый раз, когда вы добавляете бит, вы удваиваете количество значений (просто возьмите все старые значения и поставьте 0 перед ними, сделайте это снова с 1, и вы получите вдвое больше, чем старые значения).
Так п бит 2 п возможных значения, 2 п возможных слова.

Если ЦП имеет не более указанного количества битов для представления адреса (виновник: размер регистра не должен совпадать с количеством бит адреса. 32-разрядный ЦП может иметь 36-разрядные адреса например), он может получить доступ к большинству слов памяти.

Слово памяти может быть любым ненулевым размером. Буквально, любой размер. Включая 1-битный или 14-бит или 8-бит.
Самая распространенная архитектура на отмеченной, x86, использует слова 1 байт (так что с 32-разрядными адресами он может получить доступ к 2 = 4GiB), но это никоим образом не является общим правилом.

+0

спасибо за ответ; я думаю, что ответ не принимает формулу как «все, чтобы все» :) – edithegodfather

+0

@edithegodfather Как вы можете видеть из комментариев и других ответов, многие люди ошибаются :) Формула просто: * всего бит * = * максимальное количество слов * раз * бит на слово *. Нелегко быть общим, хотя, например, «байт» не означает 8 бит во всем мире, поэтому многие протоколы используют термин * октет *. –

0

32-разрядный процессор имеет 32-разрядные адресные регистры и может адресовать до 4 ГБ памяти (байт не бит). Но есть также сегментные регистры. Каждый сегмент может иметь до 4 ГБ памяти. 64 тыс. Сегментов * 4 ГБ = терабайт. Практически это невозможно сделать с любой ОС, например. Windows 7 не использует несколько сегментов, а максимум 4 ГБ.

+0

ЦП имеет [фиксированное количество адресных строк] (http://stackoverflow.com/a/39416443/5801661). Если вы говорите о x86, вы вводите в заблуждение * сегменты * с * селекторами *, а также игнорируете такие функции, как * PAE *. –

+0

@MargaretBloom Я согласен, но это практическое ограничение (реализация конкретной модели процессора). Теоретически количество адресных строк может быть увеличено до максимума: максимальный размер сегментаного регистра * 4 ГБ. Я думаю, что вопрос более теоретический. По крайней мере, нет слов о конкретном 32-битном процессоре. – i486

+0

то почему сегментные регистры 16-бит? :) Что такое размер физического адреса, как создаются логические адреса, не имеет значения (например, спаривание паролей может работать, например). –

-1

У меня когда-то был процессор Core 2 Duo Intel и 2-гигабайтная оперативная память, установленная на моей машине, я установил еще одну оперативную память с 4 гигабайтами, но Windows не смогла использовать полное добавленное пространство, а вся используемая RAM - 2,9 гигабайта. usable RAM with 32 bit processor

+0

Этот предел исходит от ОС, и вопрос заключается в теоретическом адресном пространстве 32-битного ЦП, а не для конкретных реализаций ОС. Windows (не серверные версии) не использует все возможные возможности процессора. – i486

+0

Я действительно не понимаю, потому что Windows 7 с другими машинами с ядром I3, например, может использовать объем оперативной памяти более 6 гигабайт. – Wolverine219