Interested Article - Плотность кода (машинный код)
- 2020-02-20
- 1
Плотность кода ( англ. Code density ) — показатель, характеризующий, какой объём памяти занимает программный код, выполняющий некую задачу . Не существует способов однозначно измерить величину плотности кода, так как разные задачи могут требовать различных наборов инструкций. Для оценки и сравнения плотности кода используются различные бенчмарки , как правило заключающиеся в компиляции эталонного кода с языка высокого уровня .
Значение плотности кода
В ранних компьютерных системах плотность машинного кода имела большое значение по причине ограниченного объёма памяти . Однако по мере развития микроэлектроники и общего удешевления компьютерной памяти, размер, который занимает программа в памяти, стал не настолько важным фактором. Однако более рыхлый код может привести к снижению производительности при недостаточной пропускной способности подсистемы памяти и объёма процессорного кэша .
Факторы, влияющие на плотность кода
Плотность кода часто рассматривается как характеристика микроархитектуры процессора, но на неё также оказывает влияние оптимизация при компиляции . Следующие факторы оказывают наибольшее влияние на плотность кода :
- Размер инструкции, а также все факторы, которые на него влияют: разрядность (в случае если разрядность совпадает с размером инструкции), количество регистров общего назначения и т. д. В некоторых процессорах может использоваться переменный размер команд: простые и частоиспользуемые команды меньшей длины, более редкие — большей;
- Схемы адресации;
- Разрядность также влияет на плотность кода сама по себе;
- Наличие микрокода и его сложность;
- Необходимость в выравнивании .
Как правило, код для RISC -процессоров обладает меньшей плотностью, чем CISC . Некоторые RISC-архитектуры, например, ARM включают в себя специальные средства для увеличения плотности кода, такие как режим Thumb в процессорах ARM .
Примечания
- (англ.) . ComputerLanguage.com . Дата обращения: 29 августа 2020. 26 сентября 2020 года.
- ↑ , p. 459.
- , p. 461.
- 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 : .
- 2020-02-20
- 1