Архитектура Игрушечной вычислительной машины № 1 (ИВМ-1)
Версия 0.1
Память
Оперативное запоминающее устройство представляет собой последовательность ста ячеек, пронумерованных с 00 по 9910. Каждая ячейка может содержать целое восьмизначное десятичное значение (с 0 по 9999999910). Ячейка с адресом 00 выполняет роль счетчика инструкций, а в остальном это обычная ячейка.
Каждая ячейка может содержать команду, значение, соответствующее целому числу, или значение, соответствующее действительному числу.
Алгоритм исполнителя
Исполнитель выполняет инструкцию по адресу из ячейки 00 и, если эта инструкция не является инструкцией перехода, увеличивает значение ячейки 00 на единицу. Процесс выполнения прекращается, если ячейка содержит инструкцию «остановить процесс» или после выполнения инструкции иной, нежели инструкция перехода, из ячейки 99.
Представление целых чисел
Целые числа в диапазоне ∓4999999910 представляются значениями n+49999999. 99999999 представляет собой особое значение. Оно записывается в ячейку результата невозможной целочисленной операции (деления на ноль или операции, ведущей к переполнению, недополнению) и в ячейку результата любой целочисленной операции, если хотя бы одним из ее операндов является 99999999.
Представление действительных чисел
Действительные числа в диапазоне ∓4.999∙104999 представляются значениями вида nnnnmmmm (nnnn∙104+mmmm), где nnnn = мантисса∙103+4999, mmmm = показатель+4999. 99999999 представляет собой особое значение. Оно записывается в ячейку результата операции с действительными числами, ведущей к переполнению, недополнению мантиссы или показателя или потере мантиссы и в ячейку результата любой действительной операции, хотя бы одним из операндов которой является 99999999, если хотя бы одним из ее операндов является 99999999 или мантиссой или показателем хотя бы одного из операндов является 9999.
Система инструкций
Управляющие инструкции и проверки |
Арифметические операции |
Инструкции ввода-вывода |
Безадресные инструкции |
||
НОП 00000000 ничего не делать |
|
|
СТП 00000099 остановить процесс |
|
|
Одноадресные инструкции |
||
ПРТ 000001xx перейти к xx (передать управление инструкции по адресу xx) |
|
ВВЦ 000010xx ввести целое число и присвоить его ячейке с адресом xx |
|
|
ВЫЦ 000011xx вывести целое число из ячейки с адресом xx |
|
|
ВВВ 000012xx ввести действительное число и присвоить его ячейке с адресом xx |
|
|
ВЫВ 000013xx вывести действительное число из ячейки с адресом xx |
Трехадресные инструкции |
||
|
Целочисленные арифметические операции |
|
МНШ 01xxyyzz перейти к zz, если xx < yy (если действительное значение по адресу xx больше значения по адресу yy) |
СЛЦ 11xxyyzz zz ⇠ xx+yy (присвоить ячейке с адресом zz сумму целых значений по адресам xx и yy) |
|
МШР 02xxyyzz перейти к zz, если xx ≤ yy |
ВЧЦ 12xxyyzz zz ⇠ xx-yy |
|
РВН 03xxyyzz перейти к zz, если xx = yy |
УМЦ 13xxyyzz zz ⇠ xx∙yy |
|
НРВ 04xxyyzz перейти к zz, если xx ≠ yy |
РЗЦ 14xxyyzz zz ⇠ xx/yy |
|
БШР 05xxyyzz перейти к zz, если xx ≥ yy |
СТЦ 15xxyyzz zz ⇠ xxyy |
|
БЛШ 06xxyyzz перейти к zz, если xx > yy |
КРЦ 16xxyyzz zz ⇠xx√yy |
|
|
Арифметические операции в действительных числах |
|
|
СЛВ 21xxyyzz zz ⇠ xx+yy (присвоить ячейке с адресом zz сумму действительных значений по адресам xx и yy) |
|
|
ВЧВ 22xxyyzz zz ⇠ xx-yy |
|
|
УМВ 23xxyyzz zz ⇠ xx∙yy |
|
|
РЗВ 24xxyyzz zz ⇠ xx/yy |
|
|
СТВ 25xxyyzz zz ⇠ xxyy |
|
|
КРВ 26xxyyzz zz ⇠xx√yy |
|
Методический комментарий
-
ИВМ-1 — «почти фоннеймановский», «почти безрегистровый» компьютер (ячейка 00 все же выполняет дополнительную роль счетчика инструкций).
-
ИВМ-1 — десятичный 8-разрядный компьютер. Это позволяет подавать соответствующий учебный материал без (или до) обращения к теме систем счисления. Тем не менее, представление чисел (целых и действительных) в нем достаточно сложное. Для действительных чисел выбрана более привычная школьникам научная, а не «компьютерная» нотация (n∙10m при 1≤|n|<10, а не 0,1≤|n|<10).
-
ИВМ-1 — компьютер без прерываний. Тем не менее, он особым образом обрабатывает арифметические ошибки (за счет введения особого значения 99999999).
-
Все инструкции имеют фиксированный размер: одну ячейку. У ИВМ-1 есть безадресные (начинающиеся с 000000), одноадресные (начинающиеся с 0000) и трехадресные команды). Арифметика и проверки представлены трехадресными командами.
-
Выбранный способ представления чисел позволяет обойтись одним блоком арифметических проверок, работающих как с целыми, так и с действительными числами. Также единое особое значение выбрано для представления целых и действительных чисел. Это может быть как методическим достоинством, так и методическим недостатком, в зависимости от контекста учебной программы.
-
Типы данных ИВМ-1 ограничены лишь целыми и действительными числами. Инструкций со смешанными типами у нее нет.