Компьютеры со стековой архитектурой
При создании компьютера одновременно проектируют и систему команд (СК) для него. Существенное влияние на выбор операций для их включения в СК оказывают:
*
элементная база и технологический уровень производства ком-пьютеров;
* класс решаемых задач, определяющий необходимый набор операций, воплощаемых в отдельные команды;
* системы команд для компьютеров аналогичного класса;
* требования к быстродействию обработки данных, что может породить создание команд с большой длиной слова (VLIW-команды).
Анализ задач показывает, что в смесях программ доминирующую роль играют команды пересылки и процессорные команды, использующие регистры и простые режимы адресации.
На сегодняшний день наибольшее распространение получили следующие структуры команд: одноадресные (1A), двухадресные (2A), трехадресные (3A), безадресные (БА), команды с большой длиной слова (VLIW – БДС) (рис. 2.1):
1А ~ |
| КОП | А1 | ||||||||||||
2А ~ | КОП | А1 | А2 | ||||||||||||
3А ~ | КОП | А1 | А2 | А3 | |||||||||||
БА ~ | КОП | ||||||||||||||
БДС ~ | КОП | Адреса | Теги | Дескрипторы |
Рис. 2.1. Структуры команд
Причем операнд может указываться как адресом, так и непосредственно в структуре команды.
В случае БА-команд операнды выбираются и результаты помещаются в стек (магазин, гнездо). Типичными первыми представителями БА-компьютеров являются KDF-9 и МВК "Эльбрус". Их характерной особенностью является наличие стековой памяти.
Стек – это область оперативной памяти, которая используется для временного хранения данных и операций. Доступ к элементам стека осуществляется по принципу FILO (first in, last out) – первым вошел, последним вышел. Кроме того, доступ к элементам стека осуществляется только через его вершину, т. е. пользователю "виден" лишь тот элемент, который помещен в стек последним.
Рассмотрим функционирование процессора со стековой организацией памяти.
При выполнении различных вычислительных процедур процессор использует либо новые операнды, до сих пор не выбиравшиеся из памяти компьютера, либо операнды, употреблявшиеся в предыдущих операциях. В процессорах с классической структурой обращение к любому операнду (1A-ЭВМ) требует цикла памяти.
Рассмотрим пример.