2015-11-12 3 views
-1

Я знаю, что этот вопрос кажется очевидным, но я не могу найти точный ответ.Что означает «64 бит»?

Если на моем ноутбуке написано «Windows 8 64 бит», что такое «64 бит» точно относится к? (Я знаю, что «Windows 8» - это просто имя и версия ОС).

У меня есть несколько толкований, но ни один из них не сделает меня совершенно счастливым:

  • Виртуальное адресное пространство процесса имеет размер 2^64 единиц (с единица быть некоторые небольшие размеры). Это определение не радует меня, потому что даже с дисковым хранилищем полное хранилище моего компьютера намного меньше. Поэтому я никогда не смог бы в программе инициализировать массив размером 2^64.

  • Регистры в память имеют емкость 64 бит. Это также не делает меня полностью счастливым, потому что моя машина может иметь как 64-битные, так и 32-разрядные регистры и, возможно, регистры меньшего размера.

  • Максимальная емкость регистров составляет 64 бит. Это определение может быть разумным, но выглядит «неудовлетворительно».

Так может ли кто-нибудь дать мне четкое определение или, по крайней мере, сказать, что одно из приведенных выше верно?

+0

64bit - это режим процессора в первую очередь, в этом режиме процессор может адресовать до 2^64 байта, для этого CPU использует 64-битные регистры, максимальная емкость для которых в этом режиме. Windows x64 означает версию программного обеспечения, которая требует, чтобы процессор поддерживал этот режим –

+1

- регистры не находятся в памяти, они внутри процессора, и они могут быть 128 бит (например, xmm), но они не используются для адресации памяти –

ответ

0
  1. "Windows 64 бит" означает, что операционная система поддерживает 64-битную адресацию.

  2. Это, в свою очередь, подразумевает, что CPU также поддерживает 64-разрядную адресацию.

  3. ОС и процессор - это две совершенно разные вещи.

  4. Бинарные файлы исполняемых файлов (.exes и .dlls для Windows) - это еще одна «другая вещь». 32-разрядные и 64-разрядные .exe имеют разные бинарные форматы, загружаются по-разному ОС и используют разные ресурсы времени исполнения.

  5. Вы не можете запустить 64-разрядную ОС на 32-разрядном ЦП. Но вы можете запустить 32-разрядную ОС на 64-битном процессоре. Аналогично, вы не можете использовать 64-разрядную общую библиотеку или исполняемую программу в 32-разрядной ОС.

  6. Ключевым аспектом «64-бит» является 64-разрядной адресации: что оба процессора и запущенная программа может адресовать до 2^64 байт виртуальной памяти:

  7. На практике, запущенная программа, вероятно, сможет адресовать только часть этого адресного пространства.

  8. Вы можете прочитать здесь:

https://en.wikipedia.org/wiki/64-bit_computing

PS:

Да: регистры процессора бывают самых разных размеров. Например, ah - 8 бит, точные 16 бит, eax 32 бит и rax - 64 бит. Кроме того, разные регистры делают «разные вещи». Для «64-разрядных вычислений» нас в первую очередь интересуют те регистры, которые загружаются и сохраняются в виртуальной памяти.

Смежные вопросы