3.1 Отличительные особенности категорий MS0 и ML0
==32
Машины с несколькими стеками и 0-операндной адресацией ( MS0 и ML0 ) имеют два врождённых преимущества перед другими стековыми архитектурами: 0-операндная адресация приводит к небольшому размеру инструкций, а несколько стеков позволяют независимую обработку данных и вызовы подпрограмм. Эти и другие особенности приводят к небольшому размеру программ и низкой конструктивной сложности в сочетании с высокой производительностью вычислительной системы. Главное различие между обеими категориями заключается в том, что, сокращая ресурсы, отводимые для стековых буферов, модели из категории MS0 уменьшают стоимость процессора за счёт некоторого снижения производительности.
Подробности того, как стековые машины достигают своих результатов, будут рассмотрены в шестой части, а сейчас просто перечислим их положительные стороны.
0-операндные машины в среднем имеют меньший размер кода, чем другие архитектуры. Скромные размеры программ обуславливаются короткими машинными инструкциями и тем, что стековые компьютеры поощряют частое использование процедур, что уменьшает размер кода. Для компактных программ становится возможным использовать небольшие, но быстрые микросхемы памяти. Это улучшает производительность, удерживая стоимость подсистемы памяти в разумных пределах. К дополнительным плюсам относится улучшение производительности виртуальной памяти и уменьшение нужного объёма кэша при заданной эффективности его работы.
==33
Уменьшение сложности системы сокращает время разработки и размеры кристалла, оставляя больше места для дополнительных опций и памяти.
Производительность системы включает не только собственно скорость исполнения, но и возможности адаптации к работе в реальных условиях. Кроме числа инструкций, обрабатываемых за единицу времени при последовательном ( «линейном» ) выполнении кода, скоростная компонента производительности включает в себя ещё и быстроту обработки прерываний и переключения контекста, а так же учитывает замедление работы при выполнении условных переходов или вызовов процедур. В стековых машинах инструкции вызова подпрограмм точно соответствуют формату 0-операндной адресации и не только сами по себе уменьшают размер и сложность кода, но и на самом деле улучшают производительность системы в реальных приложениях.
Дополнительным плюсом естественной поддержки вызова подпрограмм в стековых машинах является тот факт, что правильная структура кода, содержащего много небольших процедур, поощряется самой архитектурой. Поддержка хорошей практики написания программ увеличивает удобство их сопровождения и возможности повторного использования кода, позволяя рассматривать небольшие процедуры, как строительные блоки.
==33