logo search
Методичка

9.6 Зачем нужны “лишние” разряды?

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

Однако 64-битные микропроцессоры в практическом плане являются всего лишь хитрым маркетинговым трюком, скрывающим не только достоинства, но и недостатки. Нам дарованы 64-битные операнды и 64-битная адресация. Казалось бы, лишние разряды если не пригодятся, то, по крайней мере, не помешают. Так ведь, нет! С ростом разрядности увеличивается и длина машинных команд, а, значит, время их загрузки/декодирования и размеры программы, поэтому для достижения не худшей производительности 64-битный процессор должен иметь более быструю память и более емкий кэш. Это – раз.

Во-вторых, 64-битные целочисленные операнды могут применяться только при обработке чисел порядка 233 (8 589 934 592) и больше. Там, где 32-битному процессору требуется несколько тактов, 64-битный справляется за один. Но где вы видели такие числа в домашних и офисных приложениях? Не зря же инженеры из Intel пошли на сокращение разрядности АЛУ (арифметико-логического устройства), разрядность которого в Pentium-4 составляет всего 16 бит, против 32-бит в Pentium-III. Это не значит, что Pentium-4 не может обрабатывать 32-разрядные числа. Может. Только он тратит на них больше времени, чем Pentium-III. Но, поскольку, процент подлинно 32‑разрядных чисел (т.е. таких, что используют свыше 16 бит) в домашних приложениях относительно невысок, производительность падает незначительно. Зато ядро содержит меньше транзисторов, выделяет меньше тепла и лучше работает на повышенной тактовой частоте, т.е. в целом эффект положительный.

В-третьих – 64-битная разрядность шины адреса. Адресовать 18 446 744 073 709 551 616 байт памяти не нужно даже операционной системе Windows со всеми ее графическими возможностями. Из 4 Гбайт адресного пространства Windows Professional и Windows Server только 2 Гбайта выделяют приложениям. 3 Гбайта выделяет лишь Windows Advanced Server, и не потому, что больше выделить невозможно. x86 процессоры с легкостью адресуют вплоть до 16 Гбайт (по 4 Гбайта на код, данные, стек и кучу), опять-таки обходясь минимальной перестройкой операционной системы. Почему же до сих пор это не было сделано? Почему пользователи используют всего 4 Гбайта, из которых реально доступны только два? Да потому, что больше никому не нужно! Систему, адресующую 16 Гбайт, просто так не продашь, кого интересуют эти гигабайты? Вот 64 бита – совсем другое дело! Это свежая маркетинговая находка.

Сравнивать 32- и 64-битные процессоры бессмысленно. Если 64-битный процессор на "домашнем" приложении оказывается быстрее, то отнюдь не за счет своей 64-битности, а благодаря совершенно независимым от неё конструктивным решениям, для получения которых инженеры Intel и AMD проявили настоящие чудеса технологической и архитектурной изворотливости!

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

Вопросы для самопроверки

  1. В чём заключается основное отличие микроархитектуры IA-64 и x86‑64?

  2. Что означает аббревиатура EM64T?

  3. Сколько целочисленных регистров общего назначения предусмотрено микроархитектурой IA-64?

  4. Для каких целей в регистры общего назначения введён бит достоверности содержимого регистра NaT?

  5. Какова разрядность целочисленных регистров общего назначения микроархитектуры IA-64?

  6. Какая информация размещается в регистрах идентификаторах процессора микроархитектуры IA-64?

  7. Какова разрядность регистров с плавающей точкой микроархитектуры IA-64?

  8. В чём заключается спекулятивная загрузка данных в микропроцессоре микроархитектуры IA-64?

  9. Сколько типов данных с плавающей запятой непосредственно поддерживается в микроархитектуре IA-64?

  10. Какова структура связки из трёх команд в микроархитектуре IA-64?

  11. Сколько ступеней содержит конвейер команд микроархитектуры IA‑64?

  12. Какое основное достоинство микроархитектуры x86-64?

  13. Сколько регистров общего назначения предусмотрено микроархитектурой x86-64?

  14. Для каких целей служит блок SSE?

  15. Для каких целей служат регистры MMX?

  16. Какие существуют режимы работы микропроцессоров AMD-64?

  17. Для чего служит арбитр в многоядерных процессорах?

  18. Какова оценка количества транзисторов и техпроцесса в перспективных микропроцессорах этого десятилетия?

  19. Какая планируемая производительность перспективных микропроцессоров этого десятилетия?