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

книги из ГПНТБ / Основы автоматизации для металлургов

..pdf
Скачиваний:
13
Добавлен:
23.10.2023
Размер:
33.25 Mб
Скачать

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

2.ОСНОВЫ КОНСТРУИРОВАНИЯ

ИПРОГРАММИРОВАНИЯ ЦИФРОВЫХ ЭВМ

Попытки автоматизировать вычислительные работы относятся еще к временам средневековья. К наиболее старым «вычислитель­ ным машинам» относятся счеты, которые применялись в Китае еще 300 лет до нашей эры. Примерно около 300 лет назад были со­

зданы механические счетные машины

(позже они превратились

в суммирующие машины, арифмометры,

счетно-бухгалтерские ма­

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

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

прошлого века для нужд статистики, бухгалтерского

учета и

др.

На этих машинах механизирован также и ввод данных.

Каждое

чи­

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

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

Собственно цифровая вычислительная машина, снабженная па­ мятью, впервые была предложена еще в 1833 г. X. Бэбэджем, про­ фессором Кэмбриджского университета. Но проект этот чисто тео­ ретического характера, так как он превосходил технические воз­ можности того времени. Первая автоматическая вычислительная машина последовательного действия с управлением от перфоленты, MARK I , была сконструирована в США в 1937—1944 гг. Затем

176

была создана конструкция вычислительной машины MARK I I . Воз­ можности этих вычислительных машин были довольно ограничен­ ными, так как механические элементы (реле), из которых машина состояла, не позволяли достичь тех параметров, которые требова­ лись потребителям [21, 40].

Скорость операций на этих машинах, емкость памяти, а тем самым и возможности их использования возросли при применении электронных элементов в их конструкции. В быстром развитии электронных вычислительных машин большую роль сыграло их применение для военных целей. Первая ЭВМ с внутренней па­ мятью, марки ENIAC, была сконструирована для военных целей в связи с созданием водородной бомбы в США в 1945 г. В 1951 г. появилась первая коммерческая ЭВМ UNIVAC (табл. 20).

Скорости

этих

ЭВМ (порядка

100 арифметических

операций

в секунду)

были

еще малыми и

емкость памяти для

более ши­

рокого применения была недостаточной. Современные ЭВМ имеют

гораздо большие скорости и емкость

памяти.

Например,

ЭВМ

Control Date

7600 имеет

скорость

12 млн. операций

в секунду,

внутренняя

память ЭВМ

PHILCO

2000/213

имеет

емкость

2 • 106 слов.

 

 

 

Т А Б Л И Ц А 20

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Характеристика ЭВМ UNIVAC I

 

 

 

 

Время сложе­

Емкость внутрен­

Время выборки

 

Месячная аренд­

 

 

 

внутренней

 

 

 

 

ния

 

ная плата,

Первая

установка

 

ней памяти

 

памяти 2 ,

 

мксек

 

 

мксек

 

доля

 

 

 

 

 

 

 

 

 

 

 

 

 

282

 

1000 слов

 

242

 

20 000—30 000

Март

1951

 

 

по

60 б am

 

 

 

 

 

 

 

 

1 Среднее

время,

н е о б х о д и м о е

дл я

суммирования

д в у х чисел с

фиксированной

запятой,

записанных в памяти ЭВМ .

 

 

 

 

 

 

 

 

2 Среднее

время,

н е о б х о д и м о е

дл я

считывания

или запоминания

одного

слова в

памяти

ЭВМ .

 

 

 

 

 

 

 

 

 

 

 

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

12 З а к а з № 141

177

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

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

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

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

Кроме этой основной информации, команда содержит часто и адрес, по которому записана следующая команда.

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

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

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

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

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

12*

179

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

чисел, передача данных из памяти в

арифметическое

устройство

и наборот

и т. д. Программа для более сложных

математических

и логических операций (например, извлечение корня)

может быть

составлена

из этих элементарных операций.

 

 

Такой

способ программирования

называется

программирова­

нием в машинном коде. Составленная

таким способом

программа

может быть непосредственно введена

в память ЭВМ. Программа

вычисления у= (а + Ь)2, может быть представлена в форме табл. 21, аналогичной записи на с. 173. В табл. 21 код операции 137 означает передачу данных из ячейки памяти с адресом, приведенным в адрес­ ной части команды, в регистр арифметического вычислительного устройства. Код операции 337 означает сложение содержания ячейки с адресом, приведенным в адресной части команды, и со­

держания

регистра арифметического вычислительного устройства,

и т. д. (т. е. аналогично

приведенному словесному описанию про­

граммы). Знак «плюс»в табл. 21 означает,

что вычисления осуще­

ствляются

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

 

 

 

 

 

 

 

 

Т А Б Л И Ц А 21

 

 

 

Запись программы для вычисления машинным

кодом

 

 

 

(ЭВМ ОДРА 1003)

 

 

 

 

 

 

 

Команда

 

 

 

Адрес

 

 

 

 

 

 

 

в памяти

Код

операции

Адрес

Адрес

последую­

 

операнда

щей инструкции

 

 

 

 

 

 

 

 

1

 

137

 

0007

 

 

2

 

337

 

0008

 

+

 

3

 

237

 

00006

 

+

 

4

 

637

 

00006

 

+

 

5

 

237

 

0009

 

+

 

6

 

 

 

 

 

 

 

7

 

 

 

7.281

 

 

 

8

 

 

 

16.31

 

 

 

9

 

 

 

 

 

 

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

Следует отметить, что программист, который программирует задание в машинном коде, обычно подготавливает программу в де-

180

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

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

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

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

стики и мантиссы. Арифметическое устройство проводит

операции

с

характеристикой-и мантиссой

отдельно. Естественно,

что место

в

памяти, необходимое для

записи характеристики,

получают

(рис. 114, б) за счет снижения точности мантиссы. Большинство современных скоростных ЭВМ позволяет проводить вычисление с плавающей запятой. Команды записаны в памяти также в двоич­

ном коде. Форма команды изменяется в зависимости

от числа ад­

ресов,

которые она содержит, и от вида ЭВМ. Ниже приведено

общее

описание состава команды. Команда содержит

информацию

о том, какой вид операции следует осуществить (так

называемый

181

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

Наиоысший

двоичный порядок (2'')

шла

 

 

 

 

і

 

 

 

 

 

 

 

 

 

36 37

33

Г

 

 

 

 

 

 

 

 

 

 

 

 

 

Число

 

 

 

 

 

$на/< числа

 

 

 

 

Наивысший двоичный порядок

 

 

 

 

 

 

Иаибысший

дбоичный

порядок

 

(25) характеристики

 

 

(2'')

пантиссы

 

 

 

|

 

 

 

 

 

 

 

 

 

 

 

Характеристика

 

 

 

Мантисса числа

 

 

 

 

числа

 

7ТІ

 

 

 

 

 

 

30 iГ7^ 33\34 35 36 37 3S

ùA

 

 

 

 

 

 

 

m

^

 

 

 

 

 

 

 

 

 

 

 

 

 

Знак

пантиссы

 

 

Знак

характеристики

 

0 /

2 3

4

5 6

7

в 9

 

 

 

34 35 36 37 38

 

OR

 

 

AR

 

 

NR

 

HR

ZR

 

Код

 

 

Адрес

 

 

Адрес

 

Подиа>икация

 

операции

 

рперанда

последующей

 

 

 

 

 

 

 

 

 

 

копандьі

 

 

 

Рас.

114. Запись данных и к о м а н д в памяти:

 

 

• запись чисел

с

фиксированной запятой; б — запись чисел с плавающе й

 

 

запятой;

в — запись к о м а н д

в

памяти

 

 

 

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

Далее команда содержит адрес последующей

команды

(ино­

гда называемый полуадресом) и вспомогательные

данные: данные,

•служащие для модификации команды, данные о длине слова

(у не­

которых ЭВМ длина слова переменная) и т. д.

 

 

182

Язык

относительных

адресов

и язык

символических

адресов

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

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

Основные устройства цифровой ЭВМ

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

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

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

Конструкцию отдельных элементов ЭВМ мы подробно рассмат­ ривать не будем. Приступим непосредственно к описанию свойствосновных блоков ЭВМ.

Арифметическое (вычислительное) устройство

Арифметическое (вычислительное) устройство осуществляет арифметические и логические операции с числами или с буквенноцифровой информацией, согласно заранее установленным прави­ лам. В настоящее время арифметическое устройство является' самой быстроработающей частью ЭВМ. ЭВМ второго поколения достигали скорости порядка 106 операций сложения в секунду;, современные ЭВМ третьего поколения — порядка 107 операций

183.

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

Специфика ЭВМ в значительной мере определяется конструк­ цией арифметического устройства. Арифметическое устройство представляет собой собственно рабочую часть машины, тогда как

остальные

части ЭВМ

носят

с точки

зрения

проведения вычисле­

ний «вспомогательный»

характер.

 

 

 

 

Арифметическое устройство имеет

агрегатную

конструкцию и

содержит:

 

 

 

 

 

 

 

а) основной блок, выполняющий основные логические и ариф­

метические

операции

с фиксированной запятой

(сложение двух

чисел, вычитание, сравнение по величине и др.),

 

 

б) дополнительные

блоки,

выполняющие

основные

операции

с плавающей запятой,

 

 

 

 

 

 

в) дополнительные блоки, которые могут непосредственно вы­

полнять некоторые сложные

арифметические

операции

(например,

умножение).

 

 

 

 

 

 

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

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

гральных

схем, транзисторов

и

др. Например, ЭВМ NCR

CENTURY-200

содержит всего 81 панель различного типа с инте­

гральными

схемами, причем

80%

из них представлено всего

6 типами.

 

 

 

 

Подробное

описание работы

и

конструкции арифметического

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

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

Работу блока можно описать на примере сложения двух двоич­ ных, в данном случае четырехразрядных чисел х и у:

х=х3х2х1х0=\00\

—первое

слагаемое,

У = УзУ2УіУо=

1100 —второе

слагаемое,

184

- S 4 S3 S2

S l SQ '

=

10101 - сумма,

 

 

 

 

 

 

x, y, s

двоичные числа, x + y = s,

 

 

xk,

yk,su,k=0,\

 

значения цифр этих двоичных чисел в &-том

U=(J(z)

 

 

 

 

разряде,

 

 

 

 

(на рис. 115) — сигнал напряжения,

воспроизводящий дво­

 

 

 

 

 

ичные цифры.

 

 

 

 

1. Сначала

определим

алгоритм

сложения

двух однозначных

двоичных чисел Хк и уи-

 

 

 

 

 

 

хк~\~Ук~ Pksk,

 

 

 

 

 

 

 

 

 

где pu, su — двоичные цифры суммы, причем su определяет

резуль­

 

 

тат сложения

в данном

разряде, a pk определяет пе­

лVit)

редачу единицы в старший разряд.

 

 

 

 

 

Oft)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Двоичнь/й

_

Y,-0 I

 

 

 

 

 

 

J L

Y2 = l

 

 

 

 

 

 

сумматор

 

 

 

 

 

х.чЛ-

 

 

 

 

 

 

 

 

 

 

 

J L Y3--1

 

 

 

 

t=0

 

1 ,-1

1

•-J

Û--0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1 h

1

 

 

 

Р

S

 

 

 

 

<о Со

to

 

 

 

 

 

 

 

 

**>

 

 

 

 

 

 

 

 

 

 

 

Ваша

 

 

 

Обозначения

 

 

 

 

 

 

 

на exertе

 

 

 

 

 

 

 

 

 

 

 

 

Рис.

115. Двоичный

сумматор

 

Рис.

116.

Логическая схема о д н о ­

 

 

 

 

 

 

 

 

разрядного двоичного

с у м м а т о р а

Например:

 

 

 

 

 

 

с д в у м я в х о д а м и

 

 

 

 

 

 

 

 

 

1 + 0 = 01,

sk = l;

 

/7А = 0

 

 

 

 

 

1 + 1 =

10,

sk

= 0,

 

Рк=\.

 

 

 

 

 

Выразим все возможные комбинации в виде таблицы (табл. 22) и определим по ней все возможные логические связи при сложении

однозначных

двоичных чисел.

 

Основная

схема одноразрядного

сумматора, выполненная при

помощи логических элементов, показана на рис. 116.

2. На базе указанного простого

сумматора создадим сумматор

для сложения трех двоичных однозначных чисел. Алгоритм сложе­ ния можно легко вывести на основании табл. 23, где записаны со­

ответствующие логические

функции.

 

 

 

Схема этого сумматора

показана

на рис. 117. Описать

его ра­

боту очень легко с помощью логических

уравнений, которые чита­

тель может

вывести самостоятельно.

 

 

х=х3х2ХіХ0

3. Алгоритм параллельного сложения

двух чисел —

и У = УзУ2УіУо

— запишем следующим

образом:

 

Xs Х2

Xi Xq

 

 

 

 

 

Уз У2

Уі Уо

 

 

 

 

РЗ Р2 Pi Р0

«4 S3 S2 Si So

185

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