Оглавление [Скрыть]
Стековый регистр
-
Определение стекового регистра
- Стековый регистр используется для отслеживания стека вызовов в процессоре.
- В архитектуре с аккумулятором может быть выделенный регистр стека.
- В многорегистровых архитектурах может быть зарезервированный регистр или регистр, используемый для команд вызова и возврата.
-
История и особенности стековых регистров
- До конца 1960-х годов рекурсия не поддерживалась без значительных усилий со стороны программиста.
- Некоторые проекты, например Data General Eclipse, использовали аппаратный адрес памяти вместо стекового регистра.
- В ранних процессорах, таких как PDP-8 и HP 2100, стековые регистры отсутствовали, и подпрограммы сохраняли текущее местоположение в адресе перехода.
-
Работа стековых регистров в x86
- В 8086 стек вызовов хранится в регистре SP, а сегмент стека – в SS.
- PUSH и POP используются для помещения и извлечения значений из стека.
- Пример работы стековых регистров иллюстрирует, как они используются для хранения и восстановления значений.
-
Стековый движок в современных процессорах
- Более новые процессоры содержат стековый движок для оптимизации операций со стеком.
- Pentium M был первым процессором с стековым движком, который разделял указатель стека на ESPO и ESPd.
- В более поздних процессорах Intel ESPO был расширен до 64 бит, но микрооперации синхронизации остались.
- Аналогичный стековый движок используется в микроархитектуре AMD K8, а в Bulldozer микрооперации синхронизации были устранены, но внутренняя структура неизвестна.
Полный текст статьи: