Плотность кода () — показатель, характеризующий, какой объём памяти занимает программный код, выполняющий некую задачу. Не существует способов однозначно измерить величину плотности кода, так как разные задачи могут требовать различных наборов инструкций. Для оценки и сравнения плотности кода используются различные бенчмарки, как правило заключающиеся в компиляции эталонного кода с языка высокого уровня.
Значение плотности кода В ранних компьютерных системах плотность машинного кода имела большое значение по причине ограниченного объёма памяти. Однако по мере развития микроэлектроники и общего удешевления компьютерной памяти, размер, который занимает программа в памяти, стал не настолько важным фактором. Однако более рыхлый код может привести к снижению производительности при недостаточной пропускной способности подсистемы памяти и объёма процессорного кэша.
Факторы, влияющие на плотность кода Плотность кода часто рассматривается как характеристика микроархитектуры процессора, но на неё также оказывает влияние оптимизация при компиляции. Следующие факторы оказывают наибольшее влияние на плотность кода: Размер инструкции, а также все факторы, которые на него влияют: разрядность (в случае если разрядность совпадает с размером инструкции), количество регистров общего назначения и т. д. В некоторых процессорах может использоваться переменный размер команд: простые и частоиспользуемые команды меньшей длины, более редкие — большей; Схемы адресации; Разрядность также влияет на плотность кода сама по себе; Наличие микрокода и его сложность; Необходимость в выравнивании. Как правило, код для RISC-процессоров обладает меньшей плотностью, чем CISC. Некоторые RISC-архитектуры, например, ARM включают в себя специальные средства для увеличения плотности кода, такие как режим Thumb в процессорах ARM.
Примечания
Литература
Категория:Технологии процессоров