![](/user_photo/_userpic.png)
книги из ГПНТБ / Нечаев А.Н. Устройство и работа электронных цифровых машин
.pdfСложение многоразрядных двоичных чисел .выпол няется по тем же правилам, по которым складываются и десятичные числа: сложение производится поразряд но, начиная с младшего разряда, и в случае возникнове ния в каком-либо разряде переполнения единица пере носа прибавляется к цифре следующего, более старшего порядка. Рассмотрим сложение, например, двоичных чисел: 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 |