В чем разница между 32-битным и 64-битным процессором? - PullRequest
38 голосов
/ 29 декабря 2010

Я пытался читать на 32-битных и 64-битных процессорах (http://en.wikipedia.org/wiki/32-bit_processing).) Насколько я понимаю, 32-битный процессор (например, x86) имеет регистры шириной 32 бита. Я неконечно, что это значит. Так что он имеет специальные «пространства памяти», которые могут хранить целочисленные значения до 2 ^ 32?

Я не хочу звучать глупо, но я понятия не имею о процессорах. ЯПредполагается, что 64-разрядная версия в целом лучше, чем 32-разрядная. Хотя мой компьютер сейчас (один год, Win 7, Intel Atom) имеет 32-разрядный процессор.

Ответы [ 10 ]

37 голосов
/ 29 декабря 2010

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

Есть и другие последствия, но это два, которые приходят на ум.

19 голосов
/ 18 сентября 2013

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

18 голосов
/ 31 августа 2016

Первые 32-битные и 64-битные называются архитектурами.

Эти архитектуры означают, что сколько данных микропроцессор будет обрабатывать за один цикл инструкций , т.е. fetch-decode-execute

В одну секунду может быть от тысячи до миллиардов циклов команд в зависимости от конструкции процессора.

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

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

Представьте себе, что на 32-битном компьютере вам нужно написать «a» как «A», т. Е. В CAPSLOCK, поэтому для операции требуется всего 2 байта, в то время как компьютер считывает 4 байта данных, что приводит к дополнительным расходам. Эти служебные данные увеличиваются в 64-разрядном компьютере до 6 байтов. Таким образом, 64-битные компьютеры не всегда должны быть быстрыми.

Помните, что 64-разрядные окна можно запускать на микропроцессоре, только если он поддерживает 64-разрядное выполнение.

2 голосов
/ 29 декабря 2010

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

0 голосов
/ 21 мая 2019

Этот ответ, вероятно, опоздал на 9 лет, но я чувствую, что приведенные выше ответы не дают адекватного ответа на вопрос.

Определения 32-битных и 64-битных плохо определены или регламентированы каким-либо органом по стандартизации. Это просто интуитивные понятия. 32-разрядный или 64-разрядный ЦП обычно относится к собственному размеру слова архитектуры набора команд ЦП (ISA). Так что же такое ISA и какой размер слова?

ISA и размер слова

ISA - мнемоника машинных инструкций / сборок, используемая ЦП. Это самый низкий уровень программного обеспечения, который напрямую говорит о том, что делать с оборудованием. Пример:

ADD r2,r1,r3   # add instruction in ARM architecture to do r2 = r1 + r3
               # r1, r2, r3 refer to values stored in register r1, r2, r3
               # using ARM since Intel isn't the best when learning about ISA

Старым определением размера слова было бы количество битов, которые ЦПУ может вычислить за один цикл команд. В современном контексте размер слова - это размер по умолчанию для регистров или размер регистров, на которые действует базовая инструкция (я знаю, что в этом определении я сохранил много двусмысленности, но это интуитивная концепция для нескольких архитектур, которые не полностью соответствуют друг с другом). Пример:

ADD16 r2,r1,r3 # perform addition half-word wise (assuming 32 bit word size)

Пример разрядности процессора Pentium Pro с PAE

Во-первых, различные размеры слова в общем обучении:

  • Арифметические, логические инструкции: 32 бита (обратите внимание, что это нарушает старое представление о размере слова, поскольку умножение и деление занимают более одного цикла)
  • Ветвь, инструкции перехода: 32-битная для косвенной адресации, 16-битная для немедленной (Опять же, Intel не является хорошим примером из-за CISC ISA, и здесь достаточно сложности)
  • Перемещение, загрузка, сохранение: 32 бита для косвенного, 16 бит для немедленного (эти инструкции могут занимать несколько циклов, поэтому старое определение размера слова не выполняется)

Второй, размеры доступа к шине и памяти в аппаратной архитектуре:

  • Размер логического адреса до преобразования виртуального адреса: 32 бита
  • Размер виртуального адреса: 64-битный
  • Физический размер адреса после преобразования: 36 бит (шина адреса системной шины)
  • Размер шины данных системной шины: 256 бит

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

Интересно отметить, что в древние времена (70-е и 80-е) существовали архитектуры ЦП, размер слова ALU которых сильно отличался от размера доступа к памяти. Также обратите внимание, что мы даже не рассматривали причуд в инструкциях не общего назначения.

Примечание по Intel x86_64

Вопреки распространенному мнению, x86_64 не является 64-битной архитектурой в прямом смысле этого слова. Это 32-битная архитектура, которая поддерживает инструкции расширения, которые могут выполнять 64-битные операции. Он также поддерживает 64-битный размер логического адреса. Сами Intel называют это ISA IA32e (расширенный IA32, а 32-разрядный ISA - IA32).

Ссылки

Примеры инструкций ARM

Режимы адресации Intel

0 голосов
/ 21 ноября 2017

С что означает 32-битный или 64-битный процесс ?? от kenshin123:

Виртуальные адреса процесса - это сопоставления таблицы адресов, которые соответствуютк реальной физической памяти в системе.По соображениям эффективности и безопасности ядро ​​создает абстракцию для процесса, который создает иллюзию наличия собственного адресного пространства.Эта абстракция называется виртуальным адресным пространством.Это просто таблица указателей на физическую память.

Так что 32-битному процессу дается около 2 ^ 32 или 4 ГБ адресного пространства.Под капотом это означает, что процесс получает 32-битную таблицу страниц.Кроме того, эта таблица страниц имеет 32-разрядный VAS, который сопоставляется с 4 ГБ памяти в системе.

Так что да, 64-разрядный процесс имеет 64-разрядный VAS.Имеет ли это смысл?

0 голосов
/ 22 июля 2017

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

Ссылка: Разница между 32-разрядным процессором и 64-разрядным процессором

0 голосов
/ 07 октября 2013

С здесь :

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

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

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

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

0 голосов
/ 12 марта 2013

32-битные процессоры обрабатывают 32-битные данные на основе ГГц процессора в секунду, а 64-битные процессоры обрабатывают 64-битные данные в секунду с той скоростью, с которой работает ваш ПК. 34-разрядные процессоры также работают с 4 ГБ ОЗУ.

0 голосов
/ 08 января 2013

в байте 8 бит, поэтому, если его 32 бита, вы обрабатываете 4 байта данных с любой частотой ГГц или МГц, с которой ваш процессор работает в секунду так что если 64-битный процессор и 32-битный процессор работают с одинаковой скоростью, 64-битный процессор будет быстрее

...