RASPM с присоединенным вспомогательным хранилищем
Дальнейшее приближение модели к реальным компьютерам и операционным системам основывается на идее присоединенных внешних хранилищ (данных и программ).
Описанные в предыдущем пункте модели ограничены тем, что в чистом виде пригодны только для анализа отдельного алгоритма или программы. Для анализа взаимодействия алгоритмов потребовались бы значительные усилия. Чтобы упростить анализ таких ситуаций имеет смысл ввести в модель вычислительной машины специальную область или ленту, на которой будут храниться данные других программ. Назовем эту область присоединенным вспомогательным хранилищем (Attached Background Storage, ABS). Кроме этого имеет смысл потребовать, чтобы любая выполняющаяся программа имела полный доступ (чтение и запись) к этому хранилищу.
Определение 2.6. Вычислительная машина G с хранением программ в памяти с произвольной выборкой и с присоединенным вспомогательным хранилищем (RASPM с ABS) определяется шестью элементами:

где V - алфавит, состоящий из входных символов, выходных символов, а также символов, которые могут быть записаны на присоединенном вспомогательном устройстве и в ячейках памяти (регистрах), U - непустое конечное подмножество кодов инструкций, U V, T- непустое множество возможных действий процессора, f - однозначная функция f: U


Без потери общности можно допустить, что существует взаимно однозначное кодирование символов алфавита V целыми числами. При этом каждая инструкция должна сопровождаться значением операнда, таким образом каждая команда задается двумя ячейками: код инструкции в одной ячейке и значение операнда в следующей ячейке. Один из вариантов кодирования инструкций представлен в таблице:
LOAD | Операнд | 10 | Загружает в аккумулятор значение, определяемое операндом |
STORE | Операнд | 20 | Копирует значение аккумулятора в ячейку, определяемую операндом |
ADD | Операнд | 30 | Прибавляет к аккумулятору значение, определяемое операндом |
SUB | Операнд | 40 | Вычитает из аккумулятора значение, определяемое операндом |
MULT | Операнд | 50 | Умножает аккумулятор на значение, определяемое операндом |
DIV | Операнд | 60 | Делит аккумулятор на значение, определяемое операндом |
AND | Операнд | 70 | Выполняет побитовую операцию "И" между аккумулятором и значением, определяемым операндом |
OR | Операнд | 80 | Выполняет побитовую операцию "ИЛИ" между аккумулятором и значением, определяемым операндом |
XOR | Операнд | 90 | Выполняет побитовую операцию "исключающее ИЛИ" между аккумулятором и значением, определяемым операндом |
READ | Операнд | A0 | Считывает значение с входной ленты в ячейку, определяемую операндом |
WRITE | Операнд | B0 | Записывает на выходную ленту значение ячейки, определяемой операндом |
GET | Операнд | C0 | Считывает значение с вспомогательного хранилища в ячейку, определяемую операндом |
PUT | Операнд | D0 | Записывает на вспомогательное хранилище значение ячейки, определяемой операндом |
SEEK | Операнд | E0 | Перемещает считывающую/записывающую головку вспомогательного хранилища в позицию, определяемую операндом |
JUMP | Метка | FC | Присваивает счетчику инструкций значение метки |
JGTZ | Метка | FD | Присваивает счетчику инструкций значение метки, если аккумулятор содержит положительное число |
JZERO | Метка | FE | Присваивает счетчику инструкций значение метки, если аккумулятор равен нулю |
Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий