Каковы преимущества и недостатки более низкого уровня 64-битной/32-битной?

StackOverflow https://stackoverflow.com/questions/1282206

  •  16-09-2019
  •  | 
  •  

Вопрос

Я уверен, что мы все слышали термины 64 -битных и 32 -битные, но что они на самом деле имеют в виду?

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

  1. Часто слышит фразу «64 -битная машина». Какая часть компьютера на самом деле ориентирована на количество битов? Процессор? Операционная система?

  2. Какое преимущество имеет более крупные адреса памяти?

Я мог бы добавить больше вопросов, но я думаю, что краткое изложение лучше.

Спасибо, ребята: D

Это было полезно?

Решение

64 бит относится к ширине регистров, пространству адресации памяти и т. Д. Одним из преимуществ является возможность обращаться к более чем 4 ГБ памяти.

Википедия имеет статья о 64-битных вычислениях с более подробной информацией.

РЕДАКТИРОВАТЬ: преимущества В большей степени воспоминания о том, что операционная система и программы имеют больше виртуального адреса адресации-16 экзабайт (17,2 млрд. Гб)-и, что более важно, в системе можно добавить большую физическую память, что приводит к меньшему обмену виртуальной памяти на диск.

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

Таким образом, производительность обычно увеличивается, когда программное обеспечение перекомпилируется на 64 бита.

А недостаток это то, что более широкие данные могут означать больше места, занимаемого теми же данными. Например, хранение числа 300 требует девять бит. Если он хранится в 32 -битном целом, 23 бита теряются. В 64 битах эта потери становится 55 бит. Таким образом, без переоборудования, простой перекомпиляция до 64 -битной может дать быстрее, но немного более раздутое программное обеспечение.

РЕДАКТИРОВАТЬ: Также есть 64-битные технологические страницы здесь:

Другие советы

Разница ровно 32 бит ;-)

Вам нужно 64 -битное оборудование (процессор), чтобы запустить 64 -битную ОС. Вам нужна 64 -битная ОС для запуска 64 -битного программного обеспечения. Это зависимости.

  • В 32 -битной системе вы ограничитесь адресацией 4 -го гибета (2^32) памяти, в 64 -битном разряде есть теоретический предел 2^64 байта.
  • 64 -битное программное обеспечение требует чуть больше памяти, в основном для указателей 8 байтов вместо 4
  • На x86_64 64 -битные исполняемые файлы нуждаются в большем количестве памяти, так как есть дополнительный OpCode для многих инструкций, и, следовательно, может работать медленнее
  • На x86_64 64 -битное программное обеспечение может использовать больше регистров и может работать быстрее.
  • 64 -битные системы могут напрямую решать значительно больше памяти
  • 64 -битные системы могут обрабатывать данные в кусках в два раза больше 32 -битных, что помогает некоторым операциям проходить быстрее

Для некоторых программ, таких как Office Automation Suites, 32 -битный против 64 -битный имеет мало наблюдаемой разницы.

Но для других приложений, таких как базы данных, графика/обработка видео или хостинг виртуальных машин, способность достигать большей физической памяти одновременно и возможность обрабатывать больше информации с каждой инструкцией, может иметь огромное значение в производительности.

Обратите внимание, что сегодня многие 32 -битные чипы имеют 64 -битные функции расширения, как многие FPU (Математика) или SSMD (Вектор) Операции уже выполняются в режиме 64 -битного.

Видеть 32-битный против 64-битные системы: в чем разница? для большего.

  1. Регистры процессора и адресация памяти.

  2. Система может ссылаться на (см.) Гораздо больше памяти.

Я думаю, что лучшим ответом было бы сравнение в x86 -битном x64 ассемблере

Когда ваша программа x32 -бит регистрирует переменную, например, целое число (5), код эквивалентен этому:

push 5

Чтобы лучше понять вещи, «push x» - это ярлык:

sub esp,4 //substracts esp with 4(4*8=32 bits.That's the size of a pointer in x32 executables) in order to make space for our variable
mov [esp],X //moves variable in @esp

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

В 64 -битном коде, однако размер в два раза больше, как и регистры. Наш регистр ESP существует в исполняемых файлах x64, но он не широко используется, как это находится в исполняемых файлах x32.

Вместо этого все регистры получают «r» перед своим именем (EAX становится RAX, ESP становится RSP, EDX становится RDX и т. Д.).

Таким образом, наш код в исполнении X64 не будет другим, за исключением ярлыка для «push x» будет

sub esp,8
mov [rsp],X

RSP имеет вдвое больше, чем ESP - 64 бита, 8 байтов.

Суть в том, что x64 -битные исполняемые файлы используют больше памяти, чем x32 -битные исполняемые файлы.

Давайте вернемся к основам.

99% компьютера в наши дни основаны на том, что называется Фон Нейман Архитектура. Анкет По сути, компьютер находится в постоянном цикле:

  1. Извлечение команды из Ram
  2. Выполнение команды на процессоре

alt text
(источник: Wikimedia.org)

При ссылке на 32/64-битную систему (или любой другой размер битов), по сути, вы говорите об архитектуре и реализации компьютера:

  • Размер памяти (ОЗУ)
  • Размер регистров процессора
  • Размер шины (т.е. между процессором, оперативной памятью, вводом -выводом и т. Д.)

Если у вас 64-битная система, у вас есть адресное пространство 2^64. Анкет Вот почему 32-битная система не может иметь более 4 ГБ оперативной памяти. Как вы можете рассмотреть пространство памяти, которое больше, чем 2^32?

Что касается различий в производительности, нет четкого ответа (так же, как нет четкого ответа, если CISC или ARSC Architecture лучше). Это в значительной степени зависит от приложений, которые вы используете.

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

Точно 64 -битные или 32 -битные ссылки только к ширине основной шины.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top