Шапка

1.5 Стековые машины нового поколения

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

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

Множество проектов стековых компьютеров берут своё начало в языке программирования FORTH. Это происходит, потому что для машин с двумя стеками FORTH является одновременно языком как высокого уровня, так и уровня ассемблера. [*] . Один стек при этом используется для вычисления выражений и передачи параметров, а другой для хранения адресов возврата. В определённой степени язык FORTH определяет архитектуру компьютера на основе стека, которую эмулирует целевой процессор в ходе исполнения программы [* т.е. является для целевого процессора языком высокого уровня ] . Сходство между языком и аппаратными решениями не случайно. Все без исключения модели стековых машин новой волны спроектированы и поддерживаются людьми с опытом программирования на языке FORTH.

[*]
[* Здесь следует особо подчеркнуть, FORTH - высоко-низкоуровневый язык исключительно для стековых машин, причём с двумя раздельными стеками: один для переменных/аргументов/вычислений, а другой для адресов возврата. Стеков может быть и больше, если требуется, но два - обязательный минимум. Уже даже стековые машины, но с одним стеком, требуют интерпретации команд, использующих стек переменных/аргументов, т.е. ассемблерная составляющая теряется. Про прочие архитектуры и говорить не приходится]

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

Previous part:

Next part: