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

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

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

К

ПС

Адрес

1-го числа

 

 

К+1

Сл

Адрес

2-го числа

 

 

К+2

ПЯ

Адрес

 

 

результата

Нетрудно заметить, что не всегда выполнение ариф­ метической операции требует трех одноадресных команд. Например, для последовательного суммирования групп из п чисел с посылкой конечного результата в запоми­ нающее устройство потребуется п •+■1 одноадресных команд, так как частные суммы не отсылаются каждый раз в ЗУ, а остаются в сумматоре и к ним с каждой но­ вой командой посылки прибавляется новое число. Та­ ким образом, одноадресные команды оказываются вы­ годными для выполнения таких групповых операций, в результате которых образуется одно число.

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

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

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

52

Код

Адрес

Адрес

Указатель

операции

1-го числа

2-го числа

 

е

а

Ь

 

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

Код

Адрес

Адрес

Адрес

Адрес

следующей

операции

1-го числа

2-го числа

результата

команды

 

 

 

 

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

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

53

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

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

Для уяснения сущности программирования рассмот­ рим два примера (с использованием трехадресной и од­ ноадресной систем команд).

П р и м е р

1. Для трехадресной машины.

 

С о с т а в л е н и е п р о г р а м м ы д л я в ы п о л н е ­

ния на м а ш и н е г р у п п о в о й

о п е р а ц и и .

Такая

программа может быть частью

более сложной

про­

граммы.

 

 

 

Допустим,

что требуется умножить п чисел

ах, ...,

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

54

м

ь

c i

Последовательность

чисел а1, ...,

ап находится в

ячейках начиная с номера 300, число b находится в ячей­ ке номер 400, а результаты clt ..., сп будут записывать­ ся в ячейки с номерами 1000, ..., 1000+ п 1. Структура команды для каждой из п операций умножения одинако­ ва, меняются только первый и третий адреса. Если после каждого цикла умножения записывать в ячейку номер К новые адреса сц и С{, увеличенные на единицу, то для всех п умножений понадобится только одна коман­ да, записанная в одну ячейку.

Такое изменение адресов команды на единицу назы­ вается м о д и ф и к а ц и е й, или преобразованием коман­ ды, и выполняется при помощи команды специального сложения С]. В зависимости от необходимости в машине могут модифицироваться один, два или все три адреса.

Возможность изменения адресов обусловлена тем, что они представлены в машине в виде кодов чисел, над которыми так же, как и над обычными числами, можно производить арифметические операции.

Таким образом, после команды умножения, записан­ ной в ячейке номер К, должна быть записана команда специального сложения Cj. Присвоим'ей условный код 02, а команде умножения М — условный код 05.

Обозначение Код

ячейки

операции

операции

 

к

м

05

 

К+1

С.

’ -02'

"

К +2

в

03

,

к+з

Е

20

 

Адреса

300 400

У слов­

кное

'Ч И С Л О

 

!

1200

to о

 

КК +4

1000

К

to О О

000

К +4

55

Операцию Ci можно выполнить с помощью специаль­ ного блока арифметического устройства. Указание о том, какие адреса команды должны быть изменены на единицу, дается условным числом, помещаемым по вто­ рому адресу команды Сь Читается эта команда так: взять команду из ячейки К, увеличить в ней на единицу первый и третий адреса и измененную команду снова записать в ячейку К.

После выполнения операции Ci в ячейке К будет за­ писана команда:

К

м

05

301

400

1001

к выполнению которой следует перейти, чтобы получить второе произведение (а2) (Ь) = (с2). Последовательный порядок выполнения команд при этом нарушается, и для изменения этого порядка машине должно быть да­ но специальное указание. Кроме того, в программе долж­ но быть дано указание о том, когда перейти к естествен­ ному порядку выполнения команд. Эти два указания представляют собой участок программы, предназначен­ ной для контроля количества циклов и для определения (в зависимости от этого количества) направления даль­ нейших вычислений.

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

судить

о том, что все п циклов (содержащие в нашем

случае

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

выполнены.

Про­

верку логического условия

(выработку признака)

можно

осуществить с помощью

операции

вычитания, которой

_ присвоим код 03.

Для этого в какие-либо две ячейки запоминающего устройства, например 1200 и 1201, помещаем соответст­ венно числа п — 1 и 1 и записываем команду К +2 сле­ дующим образом:

56

К+2

В

03

1200

1201

1200

Эта команда читается так: взять число из ячейки но­ мер 1200, вычесть из него число, находящееся в ячейке номер 1201, и результат снова записать в ячейку номер 1200. После каждого цикла число, записанное в ячейку номер 1200, будет уменьшаться на единицу и до п —1-го цикла включительно результат будет положительным

( п -

1— / 1 + 1 = 0). После выполнения п-го цикла резуль­

тат,

записанный в ячейку номер 1200, окажется отрица­

тельным (п— 1 —п — — 1). Этот признак используется для прекращения выполнения циклической программы. Осуществляется это с помощью команды условной пе­ редачи управления Е, которая позволяет в зависимости от знака результата выполнения предшествующей ко­ манды (в нашем случае команды вычитания В, запи­ санной в ячейке К+2) изменить направление вычисли­ тельного процесса.

Команда Е, которую обозначим условным кодом 20,

должна быть помещена в ячейку К+3.

 

к+з

Е

20

К

К+4

0000

Если знак результата, полученный после выполнения команды К + 2, положителен, то следующей за коман­ дой К + 3 будет выполняться команда К; если же этот знак отрицателен, то это значит, что все ч циклов груп­ повых операций выполнены и после команды К +3 будет выполняться команда К+4, т. е. будет продолжен есте­ ственный процесс выполнения команд программы. Тре­ тий адрес команды условного перехода остается сво­

бодным.

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

57

ннй. Само собой разумеется, что вместо умножения мы могли бы взять любую другую операцию.

Следует отметить, что применение полученной про­ граммы для выполнения одной операции над группой чисел нецелесообразно с точки зрения эффективности использования машины, так как на одну полезную команду (М) требуется затратить три вспомогательные (Сь В и Е). Полезное-машинное время в этом случае составляет всего 25%.

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

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

..., ап на число Ь, составленная с использованием опи­ санных команд, имеет вид, приведенный в таблице (см. стр. 59). При этом считаем, что если указатель содер­ жит число 0, то изменение адресов не производится. Если указатель равен 5, то при каждом повторении команды ее 1-й и 3-й адреса увеличиваются на Г.

Как видно из сравнения программ, приведенных ч таблицах, применение автоматического изменения команд сокращает объем программы и время ее выполне-

58

 

Программа умножения

группы чисел

 

 

с автоматическим изменением команды

 

Обозначе­

Код

Указатель

 

Адреса

 

ячейки

ние

операции

 

 

 

операции

 

 

 

 

 

к

Нц

22

0

П

К+1

М

05

5

300

400

. 1000

К+2

Кд

23

0

к+ .

К+З

 

1

к+з

ния. Применяя более сложные команды, удается еще сильнее сократить объем программы и время работы.

П р и м е р 2. Для одноадресной машины.

С о с т а в л е н и е ' п р о г р а м м ы д л я в ы ч и с л е ­ н и я полинома степени п

у = а0+ агх + а2х 2+ а3х 3- f ...+ an- i^ n-1+ о-а*п•

Для получения компактной программы перепишем полином иначе:

_У=[[[(( ап) х -f a0r-i)x+aa-a)x+ . ..а3]х + а,}х -f а,]* + а0.

Такая запись позволяет использовать для решения за­ дачи циклическую программу.

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

Пусть коэффициенты полинома #п, а0 записаны в ячейках начиная с № 100, значение переменного х — в ячейке № 200, результат вычислений у должен быть по­ мещен в ячейку 1000. Тогда программа будет такой, как представлена в таблице на стр. 60; в этой программе,

если команда имеет значение указателя «1», происхо­ дит увеличение ее адреса на 1 при каждом исполнении. Сложение имеет код 01, посылка в сумматор — 02, умно­ жение— 05, конец цикла — 23, начало цикла — 22, по­ сылка из сумматора в .ячейку— 10.

Программа вычисления полинома

Номер

ячейки

К

К+1

К+2

К+3

К+ 4

К+5

К+ 6

Обозначе­

ние Код •Указатель Адрес Пояснения операции операции

Нц

22

0

п

Засылка

на

ре­

 

 

 

 

гистр

ап

в

ПС

02

0

100

Посылка

сумматор

 

м

05

 

 

 

0

200

Умножение содер­

 

 

 

 

жания

суммато­

Сл

 

 

 

ра на х

содер­

01

1

101

Сложение

 

 

 

 

жимого

сумма­

 

 

 

 

тора последова­

 

 

 

 

тельно

с

 

 

23

 

 

 

а0

Ки

0

К+2

Проверка,

условия

 

 

 

 

и переход либо

 

 

 

 

к К+2, либо к

ПЯ

 

 

 

К+5

резуль­

10

0

1000

Перенос

 

 

 

 

тата

 

 

После работы машины по команде К+1 и первого выполнения команд К + 2, К +3 в сумматоре образуется

вычисленное значение выражения

(апх-\-ап—\) — часть

формулы, по которой производятся

вычисления. При

втором повторении команд К+2, К +3 образуется значе­ ние выражения [(an^+an-i)Jc+an-2 )], наконец, после я-го повторения формула подсчитывается полностью и результат по команде с номером К + 5 записывается в ячейку 1000.

ЭЛЕМЕНТЫ ЭЛЕКТРОННЫХ ЦИФРОВЫХ МАШИН

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

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

идр.

Кдеталям, применяемым в современных электрон­ ных цифровых машинах, предъявляются следующие тре­ бования:

высокое быстродействие, составляющее миллионные

доди секунды; большой срок -службы (десятки тысяч часов для

наименее надежных элементов); малые величины допусков основных параметров;

отсутствие значительных изменений параметров от температуры, режима и времени работы;

хорошие конструктивные показатели (высокая меха­ ническая прочность, малые размеры, небольшая потреб­ ляемая мощность и т. п.).

Машины, построенные'на электромагнитных реле, не могут обладать высоким' быстродействием, так'как

61

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