Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

книги из ГПНТБ / Нечаев А.Н. Устройство и работа электронных цифровых машин

.pdf
Скачиваний:
10
Добавлен:
29.10.2023
Размер:
10.56 Mб
Скачать

Сложение многоразрядных двоичных чисел .выпол­ няется по тем же правилам, по которым складываются и десятичные числа: сложение производится поразряд­ но, начиная с младшего разряда, и в случае возникнове­ ния в каком-либо разряде переполнения единица пере­ носа прибавляется к цифре следующего, более старшего порядка. Рассмотрим сложение, например, двоичных чисел: 10011 (десятичное число 19) и ПОЮ (26):

,

10011

 

19

11010

+

2 6

 

101101

 

4 5

Операция вычитания двух чисел в машине сводится к алгебраическому сложению этих чисел. Для этого ал­ гебраический знак у вычитаемого меняется на обрат­ ный и операция вычитания заменяется операцией сло­ жения, 'например в обратном коде. Обратный код числа получается заменой в изображении числа пулей едини­ цами, а единиц — нулями.

Правила умножения двоичных цифр также весьма просты. Таблица умножения двух двоичных ццфр име­ ет следующий вид:

0 X 0 = 0

о х 1 = 0

1 X 0 = 0

1 X1 = 1

При умножении двух многоразрядных двоичных чи­ сел произведение получается путем последовательного поразрядного умножения множимого на каждый раз­ ряд множителя и последующего сдвига полученного ре­ зультата на число разрядов, равное числу значащих разрядов множителя. Так как в любом разряде множи­ теля может быть либо нуль, либо единица, то в процессе умножения множимое либо переписывается на соответ­ ствующее разрядное место (когда в данном разряде множителя стоит единица), либо ставятся нули и произ­ водится переход к следующему разряду множителя. В

42

качестве примера рассмотрим перемножение двоичных чисел: ПОЮ (десятичное число 26) и 1001 (9):

w

11010

V

2 6

х

1001

х

9

 

11010

 

2 3 4

 

0 0 0 0 0

 

 

+ 0 0 0 0 0 11010

11101010

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

Достоинством восьмеричной системы счисления яв­ ляется то, что по количеству разрядов при изображении чисел она близка к десятичной и позволяет легко пере­ ходить к двоичному изображению чисел путем пораз­ рядного перевода каждой восьмеричной цифры в двоич­ ное число, имеющее три разряда. Например, восьмерич­ ное число 635 в двоичной системе счисления имеет вид

110011 101.

При подготовке числовых данных задачи и при обра­ ботке результатов вычислений используется запись чи­ сел в десятичной системе счисления. Машина же опери­ рует с числами в двоичной системе. Поэтому во многих машинах в качестве промежуточной формы записи чи­

сел используется д е с я т и ч н а я

д в о и ч н о-к о д и р о-

в а н н а я с и с т е м а счисления.

В этой системе числа

представляются, по существу, в десятичной системе, но каждая десятичная цифра изображается четырьмя дво­ ичными разрядами (тетрадами). В пределах тетрады можно получить 16 различных комбинаций, но из них используется только 10.

Перевод чисел из десятичной двоично-кодированной системы счисления в двоичную при вводе числовых

43

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

Избыточность представления десятичных цифр с по­ мощью четырех двоичных разрядов (возможны 16 раз­ личных комбинаций) допускает несколько систем дво­ ичного кодирования десятичных цифр: код типа 8—4— —2—1, код 2—4—2—1, код с избытком три (8—4—2—

—1)+3 и другие. Во всех системах используется четыре двоичных разряда, каждому из которых'приписывается некоторое значение или вес.

В системе 8—4—2—1 веса двоичных разрядов припи­ сываются так же, как и в обычных двоичных числах. Кодовые обозначения просто совпадают с двоичными представлениями десятичных цифр.

Код с избытком три называется так потому, что ои получается из кода 8—4—2—1 путем прибавления дво­ ичной тройки (0011) к каждому представлению десятич­ ной цифры.

Система 2—4—2—1 и код с избытком три выгодны с точки зрения конструкции арифметических устройств. В этих системах дополнение каждой десятичной цифры до девяти (которое определяется при выполнении опе­ рации вычитания) может быть образовано с помощью каждой двоичной цифры, что легко делается с помощью специальных схем арифметического устройства; кроме того, при сложении двух двоичных представлений деся­ тичных цифр сумма содержит пять двоичных цифр, если она равна или больше десяти, и только четыре, если меньше.

44

Системы кодов 8—4—2—1, 2—4—2—1 и код с из­ бытком три показаны в таблице:

Десятичная

Код 8 - 4 - 2 - 1

Код

Код с избытком

цифра

2 - 4 - 2 —I

три

0

0000

0000

ООП

1

0001

0001

0100

2

0010

0010

0101

3

ООП

ООП

оно

4

0100

0100

0111

5

0101

1011

1000

6

оно

1100

1001

7

0111

1101

1010

8

1000

1110

1011

9

1001

1111

1100

И т. д.

 

 

 

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

При работе электронных цифровых управляющих машин для преобразования величин из непрерывной формы представления в цифровую применение рассмот­ ренных кодов представляет большое неудобство, так как при добавлении к числу единицы изменяются циф­ ры в двух или более разрядах. Так, например, при до­ бавлении единицы к коду ООП получается код 0100, т. е. изменяются цифры в первом, втором и третьем разря­ дах.

Использование в ЭЦУМ таких систем не дает воз­ можности четко различать изменения состояний двух и более разрядов, и преобразующее устройство, в котором в один момент времени изменяется больше, чем один двоичный разряд, может вносить большие искажения. Например, за счет неточности считывания показаний вместо кода 0100- (десятичная цифра' 4) может считать­ ся код 0111 (десятичная цифра 7). Поэтому при ис­ пользовании кода, например, 8—4—2—1 пределы ошиб­ ки могут достигать полной шкалы преобразования.

45

Для устранения этого недостатка разработаны спе­ циальные коды, которые получили название п р о г р е с ­ с и в н ы х ц и к л и ч е с к и х. Наибольшее распростране­ ние получил двоичный код Грея, в котором позиции не имеют определенного веса, а просто каждому числу со­ ответствует определенная кодовая комбинация знаков, как это показано в следующей таблице:

Десятичное число

Код Грея

Десятичное

Код Грея

число

 

0

00000

11

 

01110

1

00001

12

 

01010

2

00011

13

 

01011

3

00010

14

 

01001

4

00110

15

 

01000

5

00111

16

 

11000

6

00101

17

 

11001

7

00100

18

 

п о п

8

01100

19

 

п о ю

9

01101

20

д.

11110

10

01111

И т.

 

В существующих электронных цифровых вычисли­ тельных машинах, как правило, имеется одна из двух форм представления чисел: с фиксированным положе­ нием запятой и с плавающей запятой. В некоторых ти­ пах машин по желанию оператора можно устанавли­ вать ту или иную форму представления чисел.

В машинах с ф и к с и р о в а н н о й з а п я т о й

одна

часть общего количества

разрядов

используется

для

изображения целой части

числа, а

другая — для

изо­

бражения дробной части. Наиболее часто запятая уста­ навливается после первого разряда. В этом случае аб­ солютные значения чисел, которые могут быть представ­ лены в машине, не превышают 1.

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

46

Второй недостаток представления чисел с фиксиро­ ванной запятой состоит в том, что при одинаковой абсо­ лютной погрешности представления малых и больших чисел (равной единице младшего разряда) относитель­ ная погрешность представления малых чисел больше, чем больших.

Но в то же время форма представления чисел с фиксированной запятой имеет ряд преимуществ как при выполнении арифметических операций, так и при разработке конструкции арифметического устройства электронной цифровой машины, которое в этом случае получается проще и, следовательно, надежнее. Пред­ ставление чисел с фиксированной запятой нашло широ­ кое применение в малых машинах, предназначенных для инженерных расчетов (например, «Урал-1», «Се­ тунь» и др.).

В машинах, у которых числа представлены с п л а ­ в а ю щ е й з а п я т о й , одна часть разрядов отводится под мантиссу числа, а другая — под порядок числа. Ман­ тисса характеризует точность выполнения арифметиче­ ских действий, порядок — диапазон представления чи­ сел в машине.

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

Представление в машине чисел с плавающей запя­ той имеет по крайней мере три преимущества по срав­ нению с представлением чисел с фиксированной запя­ той: 1) больший диапазон представления чисел при име­ ющемся в машине количестве разрядов, вследствие чего почти исключены случаи переполнения разрядной сет­ ки; 2) при программировании задач., нет ..надобности заботиться о масштабах чисел; 3) обеспечивается при­ близительно . одинаковая точность представления боль­ ших и малых чисел.

47

Однако арифметические операции над числами, представленными с плавающей запятой, выполняются сложнее, так как требуется производить отдельно дей­ ствия над мантиссами и порядками. В силу этого и арифметические устройства для действий над такими числами получаются более сложными. Поэтому пред­ ставление чисел с плавающей запятой применяется, как правило, в электронных цифровых вычислительных ма­ шинах высокой производительности (например, «Стре­ ла», БЭСМ-2 и др.).

Программирование задач

Для любой задачи, подлежащей решению на маши­ не, разрабатывается формальное математическое опи­ сание, позволяющее свести работу машины к выполне­ нию простейших арифметических и логических опера­ ций и операций управления (сложение, вычитание, ум­ ножение, деление, сравнение чисел, перенос чисел из одного места машины в другое, преобразование чисел, ввод необходимых исходных данных, вывод результа­

тов и т. д.). Машине дается задание на

выполнение

операций в виде к о м а н д

(приказов). В командах со­

держатся указания о том,

какую операцию

выполнить,

откуда взять исходные данные для ее выполнения, куда поместить результат.

П р о г р а м м а представляет собой совокупность ко­ манд, которые должна автоматически выполнять маши­ на. Программа составляется математиком, записывает­ ся на бумаге, а затем с помощью вводных устройств переносится в запоминающее устройство (ЗУ) машины, где и сохраняется до конца решения задачи. После ввода в это же запоминающее устройство всех или ча­ сти исходных данных и пуска машины в работу про­ грамма выполняется автоматически, как правило, по­ следовательно в том порядке, в каком команды запи­ саны в программе и введены в запоминающее устрой­ ство. Другими словами, машиной поочередно управля­ ют команды, записанные последовательно.

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

48

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

Например, пусть при решении задачи однократно вы­ полняются все команды с номерами от 1 до 10 включи­ тельно, а участок с номерами команд от 11 до 18 тре­ буется повторить 12 раз. Наиболее просто, но в то же время наиболее невыгодно эту задачу можно решить, повторив 12 раз запись одной и той же последователь­ ности команд. Однако ее можно решить иначе, допол­

нив последовательность

повторяемых команд новой,

19-й командой, которая

12 раз «возвращает» машину к

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

Команды, осуществляющие передачу управления, используются не только для организации циклов, но и для реализации «разветвлений» в программе. Переда­ ча управления может производиться как в зависимости от результата проверки некоторого логического усло­ вия, так и независимо от каких-либо условий. Команды первого вида называются командами условной переда­ чи управления (условного перехода), команды второго

вида — командами безусловной

передачи

управления

(безусловного перехода).

 

 

В приведенном выше примере команда номер 19 осу­

ществляет условную передачу

управления.

Если цикл

повторен менее 12 раз, то управление передается коман­ де с номером 11, в противном случае управление пере­ дается какой-либо другой команде, например, следую­ щей (с номером 20).

Рассмотрим еще один пример. Пусть в упомянутой выше программе после выполнения команд с номерами от 20 до 24 требуется, в зависимости от некоторого ус­ ловия, либо выполнить команды от 26-й до 35-й, либо только команды от 30-й до 35-й, обходя команды с но­ мерами 26, 27, 28 и 29. При составлении такого участка программы в качестве 25-й команды применяют коман­ ду условного перехода, которая либо передает управ­

4

А. Нечаев

49

ление следующей, 26-й команде, либо «обходит» коман­ ды с номерами 26, 27, 28 и 29, передавая управление команде с номером 30.

Другая особенность многих машин состоит в том, что с помощью небольшого числа команд (обычно двух) можно выполнить некоторую операцию над боль­ шой группой чисел. Такие операции называются г р у п- п о в ы м и. Они позволяют,- в частности, переносить груп­ пы (массивы) информации из одного. запоминающего устройства в другое или из одной части запоминающе­ го устройства в другую. Такие групповые операции на­ зываются групповыми передачами, или операциями об­ мена между запоминающими устройствами.

Рассмотренные особенности построения программ работы машины позволяют резко сократить количество команд, необходимых для решения задачи.

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

Рассмотрим сначала т р е х а д р е с н у ю с и с т е м у команд, так как она в наибольшей степени соответству­ ет естественному процессу выполнения арифметических операций. Команда этой системы состоит из четырех групп чисел и содержит указания: из каких ячеек запо­ минающего устройства взять исходные числа (адреса 1-го и 2-го числа), какую операцию над этими числами провести (вид операции записывается в виде условного

кода) и в какую

ячейку ЗУ

поместить результат (ад­

рес результата). Например:

 

 

Код операции

Адрес

Адрес

Адрес

1-го числа

2-го числа

результата

 

05

101

102

560

м

а

Ъ

С

Команду, приведенную выше в качестве примера, сле­ дует прочитать так: число, находящееся в ячейке ЗУ с

50

номером «а» (например, 101), умножить (условным ко­

дом операции умножения в данном

примере является

число 05) на число,

находящееся в ячейке с номером

«b » (например, 102),

и результат

поместить в ячейку,

имеющую номер «с»

(например, 560). По этой команде

устройство управления посылает числа, хранящиеся в ячейках запоминающего устройства с номерами «а» и «Ь», в арифметическое устройство. ’’После , выполнения умножения устройство управления переносит результат из арифметического устройства в ячейку «с». Заметим, что в ячейках «а» и « b» сохраняются те же числа, кото­ рые были в них до считывания, а изменяется только со­ держимое ячейки «с».

Трехадресная команда не содержит указания о том, какая команда должна быть выполнена после данной. Поэтому если нет специальной команды условного или безусловного перехода, то при использовании трехад^ ресной системы. команды программы выполняются по­ следовательно, одна за другой, начиная с первой, пока не будет выполнена вся программа.

При о д н о а д р ес н о й с и с т е м е команда состоит из двух групп чисел: адреса одного числа и кода опе­ рации.

В общем случае для выполнения одной арифметиче­ ской операции требуется три одноадресные команды. Так, например, при одноадресной системе ,для сумми­ рования двух чисел необходимо извлечь из запоминаю­ щего устройства первое число и послать его в сумматор арифметического устройства (операция посылки в сум­ матор— ПС). Затем нужно извлечь из ЗУ второе число й также послать его в сумматор, где оно будет просум­ мировано с первым числом и сохранено до следующей команды (операция сложения — Сл). Номера ячеек, из которых выбираются числа, указаны в первой и второй командах. Результат суммирования посылается в ту ячейку, адрес которой указан в третьей команде (опе­ рация посылки — ПЯ) •

4*

51

Соседние файлы в папке книги из ГПНТБ