32 против 64 бит ... или, что именно означает "обработка информации" - PullRequest
20 голосов
/ 28 марта 2010

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

Ответы [ 6 ]

24 голосов
/ 28 марта 2010

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

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

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

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

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

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

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

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

4 голосов
/ 28 марта 2010

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

1 голос
/ 28 марта 2010

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

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

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

1 голос
/ 28 марта 2010

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

(Чтобы узнать об этом, ознакомьтесь с архитектурой IBM s390 , которая является 31-битной.)

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

0 голосов
/ 28 марта 2010

Запись в Википедии для 64-битных проливает свет на тему

0 голосов
/ 28 марта 2010

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

Например, 32 бита содержат 4 байта или 4 обычных символа, а 64 бита - 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

...