32 по сравнению с 64 битами … или, что точно делает 'информацию об обработке', среднюю

Я испытываю затруднения при понимании различия между процессором на 32 бита и процессором на 64 бита. Я знаю, что процессор на 32 бита может получить доступ к 32 битам за один раз, в то время как процессор на 64 бита может получить доступ к 64 битам за один раз. Но что точно это означает получать доступ к определенному числу битов когда-то?

20
задан Michael Petrotta 28 March 2010 в 06:57
поделиться

6 ответов

Думаю, настоящий ответ - это сложно. Метафора - это единственное, что помимо специального исследования, даст вам базовое представление. Уоллик идет по правильному пути.

Несколько вещей управляют процессором. Первый - сколько операций он может выполнять в секунду (измеряется в герцах). Хотя архитектура не дает однозначного ответа, одноядерный процессор с тактовой частотой 1 ГГц выполняет 1 000 000 000 операций в секунду. Грубо. Хотя можно получить более конкретный ответ, это не проясняет этот случай.

Процессор - это еще и другие вещи, такие как контроллер памяти (в i7), ALU и FPU и другие специализированные схемы, поэтому даже на этот вопрос сложно ответить.

Однако для ваших намерений и целей у каждого процессора есть регистры. Регистры похожи на временное пространство (быстрее, чем память), где процессор хранит небольшие объемы данных во время работы с ними. Они поддерживаются кешами L1 и L2 (иногда L3), которые также невероятно быстры. По сути, 64-битность относится к размеру рабочего пространства (и, по доверенности, канала, который соединяет регистр с кешем, поскольку данные загружаются и выгружаются одновременно).

Чем больше рабочее пространство, тем больше можно сделать без чтения новой информации из кеша или памяти.Однако то, что это возможно, не означает, что так будет всегда. Программа обычно должна быть скомпилирована с 64-битной поддержкой, чтобы воспользоваться преимуществами ускорения, и даже в этом случае вы обычно не увидите разницы, если вы не манипулируете данными, размер которых превышает 32 бита. Однако это скорее вопрос для системного программиста.

Процессор также должен следить за тем, что находится в памяти (например, что используется, а что нет). Он делает это с помощью специального регистра. Причина, по которой 32-разрядный процессор обычно не может адресовать более 4 ГБ ОЗУ, связана с размером этого регистра. Хотя расширения процессоров, такие как PAE, позволяют 32-разрядным операционным системам на 32-разрядных процессорах обращаться к 64 гигабайтам оперативной памяти, большинство ОС обычно не поддерживают это.

TL; DR, 64-битные процессоры дают возможность при правильном программировании выполнять операции с большими порциями данных одновременно и адресовать больший объем памяти. В остальном большой разницы нет.

РЕДАКТИРОВАТЬ: Чтобы люди не поняли неверное представление, под «операциями» я не имею в виду конкретно операции (сложение, умножение и т. Д.). Мое плохое, я сосредоточился на ответе на вопрос, а не на полном введении в архитектуру микропроцессора.

24
ответ дан 30 November 2019 в 00:47
поделиться

В основном это означает возможность выполнять операции над числами такого размера (например, складывать их). Хотя между 32-битной и 64-битной архитектурами существует больше различий, чем это.

4
ответ дан 30 November 2019 в 00:47
поделиться

Это мера вычислительной мощности. Примерно как автомобиль, который может перевозить 4 пассажира или 12, затрачивая примерно одинаковое количество энергии.

Например, 32 бита вмещают 4 байта, или 4 обычных символа, а 64 бита - 8 байт, а для романских языков - 8 символов. Ими можно манипулировать сразу для многих видов операций при соответствующей архитектурной ширине данных.

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

8 бит: 0 - 255 / -128 - 127
. 16 бит: 0 до 65 535 / -32768 до 32767
32 бита: 0 до 4 294 967 295 / от -2 147 483 648 до 2 147 483 647
64 бита: 0 до 18 446 744 073 709 551 615 / -9 223 372 036 854 775 808 до 9 223 372 036 854 775 807

-3
ответ дан 30 November 2019 в 00:47
поделиться

Я заметил, что вы пометили память, поэтому я иду с этим ответом:

В 32-битном процессоре процессор может использовать только 32 бита для адресации объем памяти. Это означает, что существует 2 ^ 32 уникальных комбинации, поэтому процессор может адресовать только 2 ^ 32 байта. (4Gb)

В 64-битном процессоре процессор может (теоретически) использовать 64 бита для адресации памяти или 2 ^ 64 байта адресуемой памяти. Я считаю, что это составляет 16 байтов Exo, что является огромным количеством, почти равным количеству молекул в вашей машине. Однако на практике большинство современных процессоров позволяют адресовать только 42 бита физической памяти и 48 бит виртуальной памяти из-за текущих аппаратных ограничений.

1
ответ дан 30 November 2019 в 00:47
поделиться

Это не очень точное выражение, но я понимаю, что оно означает длину адресов памяти. Например, 32 бит означает, что программам доступно 4 ГиБ (2 32 байтов).

(Для шутки, обратите внимание на 31-битную архитектуру IBM s390 .)

Кроме того, это не всегда максимальный объем данных, который ЦП может читать или обрабатывать одновременно. . Например, 64-разрядные процессоры AMD / Intel имеют ряд встроенных кешей, которые могут извлекать данные из основной памяти большими порциями. У них также есть 128-битные регистры SSE.

1
ответ дан 30 November 2019 в 00:47
поделиться

Статья в Википедии о 64-битной версии проливает хороший свет на эту тему

0
ответ дан 30 November 2019 в 00:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: