PALcode
PALcode (аббр. от англ. Privileged Architecture Library code) — набор функций в микропрограммах SRM и AlphaBIOS для процессоров DEC Alpha, предоставляющий слой абстракции от оборудования для системного ПО, включающий такие возможности, как управление оперативной памятью и кэшем, обработка прерываний и исключений.
PALcode является машинным кодом, выполняемым в специальном режиме, что позволяет получать доступ к внутренним регистрам специфичным для разных реализаций процессоров Alpha. Таким образом он выполняет некую среднюю роль между микрокодом и аппаратным эмулятором.
PALcode выполняет те функции, которые слишком сложны для аппаратной реализации, но не могут быть выполнены операционной системой, такие, как:
- Привилегированные инструкции
- Атомарные операции (например, возврат из исключений и прерываний)
- Функции, выполняемые микрокопрограммой в других архитектурах (например, заполнение буфера трансляции)
- Эмуляция инструкций, не имеющих аппаратной поддержки
PALcode зависит от операционной системы: для OpenVMS, Tru64 UNIX и Windows NT требуются разные версии PALcode. PALcode для Tru64 UNIX также используется в NetBSD, FreeBSD, OpenBSD и Linux.