Шапка

9.2 Виртуальная память и защита адресного пространства

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

9.2.1 Где нужно разделение адресного пространства

Термин «управление памятью» имеет много значений, но здесь он будет использоваться в качестве синонима защиты адресного пространства, т.е. способности предотвращать доступ одной программы к пространству памяти другой программы, за исключением особых строго контролируемых случаев. Это функция, которая считается самой важной некоторыми категориями пользователей, например, военными. Неавторизованный доступ к памяти, принадлежащей другой программе, вызывает прерывание. Прерывание заставляет операционную систему остановить или перезапустить сбойную задачу. Такой механизм обеспечивает определённый уровень безопасности, не позволяя некорректно работающему приложению мешать работе соседей. Функцию защиты памяти часто возлагают на отдельную микросхему, которой управляет операционная система. Ничего не мешает использовать подобные микросхемы со стековыми процессорами. Преимуществом стековых машин является небольшая площадь кристалла, позволяющая добавить схему управления памятью непосредственно в процессор и увеличить тем самым уровень интеграции системы.

9.2.2 Виртуальная память и контроллеры

Аналогично, нет никаких причин, мешающих использованию виртуальной памяти в стековых машинах. Единственной проблемой является промах при обращении к виртуальной памяти, который может потребовать повторного выполнения инструкции. Так как стековые машины являются квинтэссенцией машин вида загрузить/сохранить [* т.е. загрузить рабочую область - выполнить действие - сохранить результат ]   реализовать в них возможность повторного выполнения инструкций не сложнее, чем в RISC процессорах. На самом деле, благодаря отсутствию конвейера и быстроте обработки прерываний работа с виртуальной памятью в них должна быть проще.

Причина отсутствия виртуальной памяти в стековых машинах проста - бОльшая их часть предназначается для задач реального времени. Связанные же с виртуальной памятью изменения производительности и необходимость наличия жёсткого диска и обслуживающей его аппаратуры просто не допустимы в приложениях реального времени.

Previous part:

Next part: