Interested Article - Плотность кода (машинный код)

Плотность кода ( англ. Code density ) — показатель, характеризующий, какой объём памяти занимает программный код, выполняющий некую задачу . Не существует способов однозначно измерить величину плотности кода, так как разные задачи могут требовать различных наборов инструкций. Для оценки и сравнения плотности кода используются различные бенчмарки , как правило заключающиеся в компиляции эталонного кода с языка высокого уровня .

Значение плотности кода

В ранних компьютерных системах плотность машинного кода имела большое значение по причине ограниченного объёма памяти . Однако по мере развития микроэлектроники и общего удешевления компьютерной памяти, размер, который занимает программа в памяти, стал не настолько важным фактором. Однако более рыхлый код может привести к снижению производительности при недостаточной пропускной способности подсистемы памяти и объёма процессорного кэша .

Факторы, влияющие на плотность кода

Плотность кода часто рассматривается как характеристика микроархитектуры процессора, но на неё также оказывает влияние оптимизация при компиляции . Следующие факторы оказывают наибольшее влияние на плотность кода :

  • Размер инструкции, а также все факторы, которые на него влияют: разрядность (в случае если разрядность совпадает с размером инструкции), количество регистров общего назначения и т. д. В некоторых процессорах может использоваться переменный размер команд: простые и частоиспользуемые команды меньшей длины, более редкие — большей;
  • Схемы адресации;
  • Разрядность также влияет на плотность кода сама по себе;
  • Наличие микрокода и его сложность;
  • Необходимость в выравнивании .

Как правило, код для RISC -процессоров обладает меньшей плотностью, чем CISC . Некоторые RISC-архитектуры, например, ARM включают в себя специальные средства для увеличения плотности кода, такие как режим Thumb в процессорах ARM .

Примечания

  1. (англ.) . ComputerLanguage.com . Дата обращения: 29 августа 2020. 26 сентября 2020 года.
  2. , p. 459.
  3. , p. 461.
  4. Andrew N. Sloss, Dominic Symes, Chris Wright. ARM System Developer’s Guide: Designing and Optimizing System Software. — Morgan Kaufmann. — P. 15. — ISBN 1-55860-874-5 .

Литература

  • Vincent M. Weaver, Sally A. McKee. Code Density Concerns for New Architectures // IEEE International Conference on Computer Design. — 2009. — ISBN 978-1-4244-5029-9 . — doi : .
Источник —

Same as Плотность кода (машинный код)