2025-10-18

vak: (Знайка)
Держи голову в холоде, живот в голоде, а ноги в тепле стек выровненным.

Некоторые архитектуры ЦП требуют, чтобы указатель стека (SP) оставался выровненным по 16-байтовой границе. Это требование обеспечивает эффективный доступ к памяти, особенно для векторных/SIMD-операций, и помогает предотвратить ошибки выравнивания в некоторых случаях. Обратите внимание, что «всегда» обычно означает сохранение этого выравнивания во время нормального выполнения (например, при входе/выходе из функции и для стековых кадров), хотя временные нарушения выравнивания могут возникать во время кода пролога/эпилога.

Вот архитектуры, требующие этого:
  • x86-64 (AMD64): ABI System V требует 16-байтового выравнивания стека перед вызовами функций и в большинстве областей кода, в первую очередь для поддержки инструкций SSE/AVX, требующих выровненной памяти.
  • AArch64 (ARM64): Указатель стека всегда должен быть выровнен по 16 байтам, с аппаратной поддержкой генерации ошибки выравнивания в случае невыровненного выравнивания (через бит SCTLR,SA).
  • PowerPC64: ABI ELF требует, чтобы указатель стека всегда поддерживал выравнивание по четырём словам (16 байт).
  • RISC-V (64-бит): Стандартный ABI требует выравнивания указателя стека по 16 байтам (128 бит), особенно в реализациях с аппаратной поддержкой операций с плавающей запятой.
  • SPARC64: ABI определяет, что указатели стека и фрейма должны быть выровнены по 128-битной (16 байт) границе.
  • IA-64 (Itanium): Указатель стека всегда должен указывать на выровненный по 16 байтам адрес, согласно программным соглашениям.
Другие архитектуры не имеют такого 16-байтового требования, такие как 32-битная ARM (выравнивание обычно 4 или 8 байт), MIPS (8-байт для mips64) или 32-битная x86 (4 байта).
vak: (Робот 1)
Миниатюрный модуль Modalix управляет всем многопотоковым конвейером обработки видео — приемом, декодированием, выводом и поддерживает несколько моделей ИИ — и все это укладывается в 10 ватт потребления.