User Tools

Site Tools


besm:m20

Электронная вычислительная машина М-20

  • Главный конструктор: академик С.А.Лебедев
  • Год окончания разработки: 1958
  • Годы выпуска: 1958-1964
  • Число выпущенных машин: 20
  • Элементная база: электронные лампы (1600 штук)
  • Средняя производительность: 20 тыс. операций в секунду
  • Потребляемая мощность: 50 кВт

m20.jpg

Статья на сайте виртуаьного компьютерного музея.

Система команд машин М-220 и БЭСМ-4 расширена по сравнению с М-20. Дополнительные команды (20, 40, 60, 17, 37, 57) здесь не описываются.

М.Р.Шура-Бура, В.С.Штаркман "Вычислительная машина М-20", Москва ЦБТИ 1962.

Материалы из книги Ляшенко В.Ф. “Программирование для ЦВМ с системой команд типа М-20”:


Представление чисел

45 44 43—37 36————————————–1
признак знак порядок мантисса
  • Знак равен 0 для положительных и 1 для отрицательных чисел.
  • Порядок смещён на 64.
  • Мантисса хранится в прямом коде как для положительных, так и для отрицательных чисел.
  • Ноль представлен нулями во всех битах.
  • Признак не имеет арифметического значения.

Формула такая: Значение = 0.Мантисса * (1 - Знак*2) * 2 (Порядок - 64)

Для нормализованных чисел бит 36 всегда равен 1.

Пример: 1.0
45 44 43—–37 36————————————–1
x 0 1 000 001 100 000 000 000 000 000 000 000 000 000 000 000
Пример: -1.0
45 44 43—–37 36————————————–1
x 1 1 000 001 100 000 000 000 000 000 000 000 000 000 000 000

Представление команд

45 44 43 42—37 36————25 24————13 12————1
Признак А1 Признак А2 Признак А3 Код операции Адрес 1 Адрес 2 Адрес 3

Регистры

Сокращение Название Разрядность Описание
РА Регистр адреса 12 бит Прибавляется к адресу Аi, если в команде установлен соответствующий бит-признак.
Ω Управляющий сигнал 1 бит Устанавливается большинством команд. Используется в командах условного перехода.
РМР Регистр младших разрядов 36 бит Хранит младшую часть мантиссы результата умножения. Считывается командой 47.

Коды операций

У команд М-20 не было мнемонических обозначений, программирование велось непосредственно в числовых обозначениях. Указанная в таблицах мнемоника придумана автором (по аналогии с БЭСМ-6).

Арифметические операции

КОП Мнемоника Описание
01 сл Сложение с округлением и нормализацией
21 слбо Сложение без округления с нормализацией
41 слбн Сложение с округлением без нормализации
61 слбно Сложение без округления и без нормализации
02 вч Вычитание с округлением и нормализацией
22 вчбо Вычитание без округления с нормализацией
42 вчбн Вычитание с округлением без нормализации
62 вчбно Вычитание без округления и без нормализации
03 вчм Вычитание модулей с округлением и нормализацией
23 вчмбо Вычитание модулей без округления с нормализацией
43 вчмбн Вычитание модулей с округлением без нормализации
63 вчмбно Вычитание модулей без округления и без нормализации
04 дел Деление с округлением
24 делбо Деление без округления
44 кор Извлечение корня с округлением
64 корбо Извлечение корня без округления
05 умн Умножение с округлением и нормализацией
25 умнбо Умножение без округления с нормализацией
45 умнбн Умножение с округлением без нормализации
65 умнбно Умножение без округления и без нормализации
06 слпа Сложение порядка с адресом
26 слп Сложение порядков чисел
46 вчпа Вычитание адреса из порядка
66 вчп Вычитание порядков чисел
47 счмр Выдача младших разрядов произведения

Логические операции

КОП Мнемоника Описание
00 зп Пересылка
20 счп Чтение пультовых тумблеров
13 слк Сложение команд
33 вчк Вычитание команд
53 слко Сложение кодов операций
73 вчко Вычитание кодов операций
14 сдма Сдвиг мантиссы по адресу
34 сдм Сдвиг мантиссы по порядку числа
54 сда Сдвиг по адресу
74 сд Сдвиг по порядку числа
15 нтж Поразрядное сравнение (исключаищее или)
35 нтжс Поразрядное сравнение и останов машины по несовпадению
55 и Логическое умножение (и)
75 или Логическое сложение (или)
07 слц Циклическое сложение (отдельно порядок и мантисса)
27 вчц Циклическое вычитание (отдельно порядок и мантисса)
67 сдц Циклический сдвиг (на 24 по 48-разрядной сетке)

Операции управления

КОП Мнемоника Описание
10 вп Ввод с перфокарт
30 впбк Ввод с перфокарт без проверки контрольной суммы
50 ма Подготовка обращения к внешнему устройству
70 мб Выполнение обращения к внешнему устройству
11 цме Сравнение и установка регистра адреса, переход по < и Ω=1
31 цбре Сравнение и установка регистра адреса, переход по >= и Ω=1
51 цмо Сравнение и установка регистра адреса, переход по < и Ω=0
71 цбро Сравнение и установка регистра адреса, переход по >= и Ω=0
12 цм Сравнение и установка регистра адреса, переход по <
32 цбр Сравнение и установка регистра адреса, переход по >=
52 раа Установка регистра адреса адресом
72 ра Установка регистра адреса
16 пв Передача управления с возвратом
36 пе Передача управления по условию Ω=1
56 пб Передача управления
76 по Передача управления по условию Ω=0
77 стоп Останов машины

Примеры программ

Примеры взяты из книги Ляшенко.

Пример 1

Пусть требуется решить уравнение

    1/32 x5 - 3/4 x2 - x + 4.005 = 0

если известно приближенное значение искомого корня

    x0 = 2.0

Преобразуем уравнение к виду

    x = 1/32 x5 - 3/4 x2 + 4.005

Так как производная функции

    у = 1/32 x5 - 3/4 x2 + 4.005

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

Решать уравнение будем по формуле:

    xi+1 = 1/32 xi5 - 3/4 xi2 + 4.005

пока не получим неравенства

    | xi+1 - xi | < ε

Исходные данные расположены так:

Номер ячейки 0020 0021 0022 0023 0024
Содержимое x0 = 2 4.005 1/32 ε = 0.0001 3/4

Рабочие ячейки начинаются с ячейки номер 4000.

Номер ячейки Команда Вычисляемая величина
0100 0 00 0020 0000 4000 Засылка x0
0101 0 05 4000 4000 4001 xi2
0102 0 05 4001 4000 4002 xi3
0103 0 05 4002 4001 4002 xi5
0104 0 05 0022 4002 4002 1/32 xi5
0105 0 05 4001 0024 4001 3/4 xi2
0106 0 02 4002 4001 4001 1/32 xi5 - 3/4 xi2
0107 0 01 0021 4001 4001 xi+1 = 1/32 xi5 - 3/4 xi2 + 4.005
0110 0 02 4001 4000 4002 xi+1 - xi
0111 0 03 4002 0023 0000 | xi+1 - xi | - | ε |
0112 0 76 4001 0101 4000 Пересылка xi+1 в 4000
0113 0 77 0000 0000 0000 Остановка

Команда 0112 осуществляет передачу управления на следующую итерацию, если

    | xi+1 - xi | - | ε | >= 0

и засылает в 4000 новое значение xi. После окончания итераций в ячейке 4000 находится корень уравнения

    1/32 x5 - 3/4 x2 - x + 4.005 = 0

Пример 2

Требуется вычислить значение sin x с точностью до 10-4 по ряду:

    sin x = x - x3/3! + x5/5! - ...

Если после использования 20 членов ряда такая точность не достигается, дальнейшие вычисления прекратить и остановить машину.

В ячейке a+1 записана единица, а в a+2 - одна десятитысячная; x находится в ячейке a+3; вычисленное значение sin x должно быть послано в ячейку a+4.

Заметим, что каждый член, начиная со второго, может быть получен из предыдущего умножением его на

    - x2 / (n+1) / (n+2)
где n - показатель степени при x в предыдущем члене. Так как ряд для вычисления sin x знакопеременный, то остаточный член ряда, определяющий точность, меньше по модулю последнего учтённого члена.

Программа для вычисления sin x может быть такой:

Адрес Команда Вычисляемая величина
k+1 0 00 a+3 0000 a+4 Засылка x
k+2 0 00 a+3 0000 c+1 Засылка x
k+3 0 00 a+1 0000 c+2 Засылка единицы
k+4 0 05 a+3 a+3 c+3 x2
k+5 0 02 0000 c+3 c+3 - x2
k+6 0 52 0000 0000 0000 Очистка РА
k+7 0 01 c+2 a+1 c+2 n + 1
k+10 0 04 c+1 c+2 c+1 1/(n+1) xn/n! (-1)n-1
k+11 0 01 c+2 a+1 c+2 n + 2
k+12 0 04 c+1 c+2 c+1 1/(n+1)/(n+2) xn/n! (-1)n-1
k+13 0 05 c+3 c+1 c+1 Вычисление члена ряда
k+14 0 01 a+4 c+1 a+4 Вычисление суммы ряда
k+15 0 03 c+1 a+2 0000 Проверка точности
k+16 1 51 0022 k+7 0001
k+17 0 36 0000 k+21 0000 Обход остановки, если получена нужная точность
k+20 0 77 0000 0000 0000 Остановка
k+21 . .. …. …. ….
besm/m20.txt · Last modified: 2008/03/26 09:59 by 127.0.0.1

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki