Основным преимуществом 64-разрядного процессора является возможность иметь 64-разрядные типы указателей, которые позволяют диапазонам виртуальных адресов превышать 4 ГБ. На 32-разрядном процессоре размер указателя (обычно) составляет 32 бита, что позволяет указателю ссылаться на один из 2 ^ 32 (4 294 967 296) дискретных адресов. Это позволяет программе создать структуру данных в памяти размером до 4 ГБ и разрешить любой элемент данных в ней, просто отменив ссылку на указатель. Реальность немного сложнее, но для целей этого обсуждения это достаточно хороший взгляд.
64-разрядный ЦП имеет 64-разрядные типы указателей, которые могут ссылаться на любой адрес с пробелом с 2 ^ 64 (18,446,744,073,709,551,616) дискретными адресами или 16 эксабайтами. Подобный процесс на ЦП может (теоретически) создать и логически адресовать любую часть структуры данных размером до 16 эксабайт путем простой разыменования указателя (поиска данных по адресу, содержащемуся в указателе).
Это позволяет процессу на 64-битном процессоре работать с большим набором данных (ограниченным физической памятью), чем процесс на 32-битном процессоре. С точки зрения большинства пользователей 64-битных систем, основным преимуществом является способность приложений работать с большими наборами данных в памяти.
Кроме того, вы можете получить собственный 64-битный целочисленный тип. 64-разрядное целое число делает арифметические или логические операции с использованием 64-разрядных типов, таких как C * long long
, быстрее, чем одно, реализованное в виде двух 32-разрядных операций. Арифметика с плавающей запятой вряд ли будет существенно затронута, поскольку FPU на большинстве современных 32-битных процессоров изначально поддерживают 64-битные double
типы с плавающей запятой.
Любые другие преимущества в производительности или расширенные наборы функций являются функцией конкретных реализаций чипа, а не чем-то присущим системе, имеющей 64-битный ALU.