Часть 6. Пояснения к конструкции и принципам работы стековых машин
==115
В предыдущих частях приводилось абстрактное описание стековой машины и несколько примеров реальных процессоров. Теперь будет объяснено, почему они проектировались именно так и в чём состоят врождённые преимущества стековых компьютеров перед традиционными архитектурами.
В этой части в качестве характеристических точек используются три различных подхода к разработке компьютеров. Первый подход олицетворяют компьютеры со сложной системой команд ( CISC ). Типичным представителем является серия VAX фирмы Digital Equipment Corporation и процессоры для персональных компьютеров ( например, 680x0, 80x86 ). Второй подход используют компьютеры с сокращённой системой команд ( RISC ) ( Patterson 1985 ). Проекты: Berkeley RISC ( Sequin & Patterson 1982 ) и Stanford MIPS ( Hennesy 1984 ). Третье направление - стековые машины, описанные в предыдущих частях.
В §6.1 рассматривается история многолетних споров между сторонниками машин на основе регистров , стеков и массивов памяти и более современные дискуссии между сторонниками CISC и RISC архитектур.
Преимущества стековых машин обсуждаются в §6.2 . Программы для стековых машин компактнее, аппаратура проще, а производительность и степень вычислительной однородности выше, чем у других процессоров в большинстве областей применения. [* Речь, вероятно, идёт о более равномерном перемешивании различных типов инструкций ( переходы, вычисления, вызовы и т.д. ) в коде программ, ведущем к малым мгновенным отклонениям скорости вычислений относительно среднего значения ] .
В §6.3 представлены результаты изучения частот появления резличных слов в программах FORTH. Заметный процент кода занимают вызовы подпрограмм и возврат из них, что совсем не удивительно.
В §6.4 проблемы управления стеком оцениваются через симуляцию обращений к нему. Результаты показывают, что значительной части приложений требуется менее 32 элементов стека. Раздел также освещает четыре способа борьбы с переполнениями стека: очень большие стеки, обслуживание по запросу, страничная организация управления и ассоциативный кэш.
==116
В §6.5 прикидываются затраты на обработку прерываний и поддержку многозадачности в стековых машинах. Симуляция показывает умеренные накладные расходы на контекстное переключение стековых буферов в большинстве конфигураций. Более того, стоимость переключения можно снизить дополнительно, если придерживаться правильной программной техники обработки прерываний, использовать «лёгкие» задачи и разделять стековые буфера на множество небольших областей.
==116