Каковы преимущества и недостатки более низкого уровня 64-битной/32-битной?
-
16-09-2019 - |
Вопрос
Я уверен, что мы все слышали термины 64 -битных и 32 -битные, но что они на самом деле имеют в виду?
Я почти уверен, что они имеют отношение к размеру адреса памяти. На 64 -битной машине ссылка на объект составляет 64 бита. Но я хочу копать немного глубже ....
Часто слышит фразу «64 -битная машина». Какая часть компьютера на самом деле ориентирована на количество битов? Процессор? Операционная система?
Какое преимущество имеет более крупные адреса памяти?
Я мог бы добавить больше вопросов, но я думаю, что краткое изложение лучше.
Спасибо, ребята: D
Решение
64 бит относится к ширине регистров, пространству адресации памяти и т. Д. Одним из преимуществ является возможность обращаться к более чем 4 ГБ памяти.
Википедия имеет статья о 64-битных вычислениях с более подробной информацией.
РЕДАКТИРОВАТЬ: преимущества В большей степени воспоминания о том, что операционная система и программы имеют больше виртуального адреса адресации-16 экзабайт (17,2 млрд. Гб)-и, что более важно, в системе можно добавить большую физическую память, что приводит к меньшему обмену виртуальной памяти на диск.
Преимущество более широких регистров и автобусов данных заключается в том, что проще и быстрее перемещать столько же данных. Операция, которая требовала двух или более регистров, теперь может быть сделана с одной.
Таким образом, производительность обычно увеличивается, когда программное обеспечение перекомпилируется на 64 бита.
А недостаток это то, что более широкие данные могут означать больше места, занимаемого теми же данными. Например, хранение числа 300 требует девять бит. Если он хранится в 32 -битном целом, 23 бита теряются. В 64 битах эта потери становится 55 бит. Таким образом, без переоборудования, простой перекомпиляция до 64 -битной может дать быстрее, но немного более раздутое программное обеспечение.
РЕДАКТИРОВАТЬ: Также есть 64-битные технологические страницы здесь:
- Intel® 64 Архитектура
- AMD64 Solutions
- IBM: Из стеков: переход на 64 бита
- IBM: Портирование приложений Linux в 64-битные системы
- IBM: 64-разрядное руководство, принимающее решения по вычислительному решению
- CodingHorror: Это время на 64 бит на рабочем столе?
- Classicars: Введение в 64-битные вычисления и x86-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-битные системы: в чем разница? для большего.
Регистры процессора и адресация памяти.
Система может ссылаться на (см.) Гораздо больше памяти.
Я думаю, что лучшим ответом было бы сравнение в 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% компьютера в наши дни основаны на том, что называется Фон Нейман Архитектура. Анкет По сути, компьютер находится в постоянном цикле:
- Извлечение команды из Ram
- Выполнение команды на процессоре
(источник: Wikimedia.org)
При ссылке на 32/64-битную систему (или любой другой размер битов), по сути, вы говорите об архитектуре и реализации компьютера:
- Размер памяти (ОЗУ)
- Размер регистров процессора
- Размер шины (т.е. между процессором, оперативной памятью, вводом -выводом и т. Д.)
Если у вас 64-битная система, у вас есть адресное пространство 2^64
. Анкет Вот почему 32-битная система не может иметь более 4 ГБ оперативной памяти. Как вы можете рассмотреть пространство памяти, которое больше, чем 2^32
?
Что касается различий в производительности, нет четкого ответа (так же, как нет четкого ответа, если CISC или ARSC Architecture лучше). Это в значительной степени зависит от приложений, которые вы используете.
Сумма: 64-битная архитектура-это просто другой способ создать компьютер. Это не означает, что это лучше, или хуже, или что-то делает по-другому (на низком уровне каждый компьютер выполняет обратную связь). Это просто другой способ реализации компьютера.
Точно 64 -битные или 32 -битные ссылки только к ширине основной шины.