stringtranslate.com

Длинный режим

В компьютерной архитектуре x86-64 длинный режим — это режим, в котором 64-битная операционная система может получить доступ к 64-битным инструкциям и регистрам . 64-битные программы запускаются в подрежиме, называемом 64-битным режимом, а 32-битные программы и 16-битные программы защищенного режима выполняются в подрежиме, называемом режимом совместимости. Программы реального режима или виртуального режима 8086 не могут запускаться в длинном режиме.

Обзор

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

Бит в поле расширенных атрибутов CPUID сообщает программам в реальном или защищенном режимах, может ли процессор перейти в длинный режим, что позволяет программе обнаружить процессор x86-64. Это похоже на бит атрибута CPUID, который процессоры Intel IA-64 используют, чтобы позволить программам определять, работают ли они в режиме эмуляции IA-32.

На компьютере с устаревшей версией BIOS BIOS и загрузчик работают в реальном режиме . После того, как выполнение переходит к ядру операционной системы , поддерживающему x86-64, ядро ​​проверяет поддержку ЦП для длинного режима, а затем выполняет инструкции для входа в него. На компьютере под управлением UEFI прошивка UEFI (кроме CSM и устаревшего дополнительного ПЗУ ), любой загрузчик UEFI и ядро ​​операционной системы работают в длинном режиме.

Ограничения памяти

Хотя размеры регистров увеличились до 64 бит по сравнению с предыдущей архитектурой x86 , адресация памяти еще не увеличена до полных 64 бит. В настоящее время нецелесообразно оснащать компьютеры достаточной памятью, чтобы требовать полные 64 бита. Пока это так, блоки загрузки/хранения, теги кэша , MMU и TLB можно упростить без потери полезной памяти. Несмотря на это ограничение, программное обеспечение программируется с использованием полных 64-битных указателей и, следовательно, сможет использовать все большие адресные пространства по мере того, как они будут поддерживаться будущими процессорами и операционными системами.

Текущие лимиты

Первые ЦП, реализующие архитектуру x86-64, а именно процессоры AMD Athlon 64 / Opteron (K8), имели 48-битную виртуальную [1] : 129–130  и 40-битную физическую адресацию . [1] : 4 

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

Предел физической адресации ограничивает объем установленной оперативной памяти , к которому компьютер может получить доступ. В многопроцессорной системе ccNUMA (Opteron) сюда входит память, установленная на удаленных узлах, поскольку процессоры могут напрямую обращаться (и кэшировать) ко всей памяти независимо от того, находится ли она на домашнем узле или на удаленном узле. Ограничение физической памяти K8 в 1  ТБ (40 бит) огромно по стандартным стандартам персональных компьютеров, но могло быть ограничением для использования в суперкомпьютерах. Следовательно, микроархитектура K10 (или «10h») реализует 48-битные физические адреса и поэтому может адресовать до 256  ТБ ОЗУ. [2]

При необходимости микроархитектуру можно расширять шаг за шагом без побочных эффектов со стороны программного обеспечения и одновременно экономить средства на ее внедрении. Для будущего расширения архитектура поддерживает расширение виртуального адресного пространства до 64 бит и адресацию физической памяти до 52 бит (ограничено форматом записи таблицы страниц ). [3] Это позволит процессору адресовать 2 64 байта (16 эксабайт ) виртуального адресного пространства и 2 52 байта (4 петабайта ) физического адресного пространства.

Смотрите также

Рекомендации

  1. ^ ab «Руководство программиста по архитектуре AMD64, том 2: Системное программирование» (PDF) . 2016 . Проверено 9 апреля 2015 г.
  2. ^ «Руководство разработчика BIOS и ядра (BKDG) для процессоров семейства AMD 10h» (PDF) . п. 30 . Проверено 9 апреля 2015 г. Физическое адресное пространство увеличено до 48 бит.
  3. ^ AMD 2016, с. 24: «Архитектура AMD64 расширяет эту поддержку, позволяя транслировать 64-битные виртуальные адреса в 52-битные физические адреса, хотя реализации процессоров могут поддерживать меньшие пространства виртуальных и физических адресов».

Внешние ссылки