книги из ГПНТБ / Семененко В.А. Вычислительная техника в инженерных и экономических расчетах учеб. пособие для студентов всех специальностей
.pdfдержи'іиым РМ2, что, в свою очередь, вызывает возбуждение шины п управляющей матрицы УМ и матрицы 'последова тельности МП. С управляющей матрицы считывается серия управляющих импульсов микро-инструкций адреса п. Матри ца последовательности порождает адрес п' последующих микроинструкций. Таким образом, к моменту появления на входе дешифратора очередного четного импульса ГИ на ре гистре РМ2 уже будет установлено новое значение кода, что приводит к возбуждению иной, чем в предыдущем такте горизонтальной шины матриц. На выходе матрицы. УМ по является новая серия микроинструкций, а на выходе матри цы М П—^очередной адрес, посылаемый в регистр РМі. -
В таблице 18 приведен пример выработки микроинструк ций для выполнения машинных операций сложения, вычита ния и деления в мини-ЭВМ.
Коді машин Микро
ной опе адрес рации
«0
с1
в2
Д3
У4
5
6
Импульсы управления
(СА) - РА
Шп) -+■Рау Тро (МЯ) -V Рау 1pj ,
( Р А ) - С Ц
Т а б л и ц а 18
Следующий адрес
Условие
перехода
0' 1
-
7
13
12
9
|
7 |
|
8 |
Д |
9 |
|
10 |
' В |
11 |
12 ■ |
|
с ѵв |
13 |
(МК)-> РК(СА) +'1 |
8 |
|
|
Код маш. опер. ->- РМі |
— |
|
|
адрес |
-»■ РА. |
|
|
СІД |
' |
10 |
|
СДпр |
|
||
СЦі |
11 |
0 |
|
|
СЦ0 |
10 . |
|
Вобр |
|
13 |
|
|
|
0 |
|
-
П р и и е ч а и и е: здесь С — сложение, В — вычитание, Д — деление,
■У — умножение и т. д. |
|
|
Когда регистры |
микроинструкций устанавливаются |
в |
ноль, нолевая строка |
(строка с микроадресом 0 ) 'передает |
|
содержимое счетчика |
адреса (CÂ) в регистр адреса (РА) |
и |
170
заносит следующий |
адрес 7 в |
регистр РМЬ Микроадрес 7 |
||
управляет передачей |
текущей |
инструкции |
(М„) в |
регистр |
команд (РК) и 'приращением |
содержимого |
счетчика |
адреса |
на «1», В РМі заносится следующий адрес 8, который управ
ляет |
передачей |
кода машинной операции в регистр |
РМі и |
адреса текущей |
инструкции в регистр адреса. Таким |
обра |
|
зом, |
устройство |
готово и обработке машинной операции. |
Пусть, например, выполняется операция вычитания с ко дом машинной операции В. Она осуществляет передачу в регистр арифметического устройства (Рау) , содержимого текущей инструкции, устанавливая триггер Тр (рис. 3—29) в состояние «1». Она же вызывает следующий*адрес 12, по ко торому происходит образование обратного кода числа Во6р и переход к микроадресу 13. Последний вырабатывает сиг нал сложения тс и переход на начало микропрограммы.
При создании последней серии микроинструкций, необхо димых для выполнения данной команды, код на выходах МП не возникает, и в РМі вводится код операции следующей команды.
При выполнении инструкций типа деления, умножения и др., где необходимо изменять порядок выработки управляю щих импульсов в ходе выполнения одной и той же команды, используется триггер условий Ту, переключающий входные цепи матрицы. При выполнении деления микроадрес 3 осу ществляет пересылку адреса в счетчик циклов СЦ и вызов следующего микроадреса 9, который создает первый отсчет ОД; следующая строка 10 управляет сдвигом на 1 двоичный разряд вправо СдпР, производит отсчет счетчика циклов и вызывает строку 11, которая переводит к выполнению мик роадреса 10, если содержимое, счетчика циклов положительно ( С Ц о = 0) и-к микроадресу 0, если содержимое счетчика циклов отрицательно (СЦо='1). СЦо играет в этом случае роль условного перехода, поэтому микроинструкция 11 назы вается условной микроинструкцией.
ГЛАВА V
У С ТРО Й С ТВ А В В О Д А — В Ы В О Д А
Прежде чем ввести информацию в ЦВМ, ее необходимо представить в виде, понятном машине. Для этого информация ванооится с помощью специальных устройств на носители — перфокарты, перфоленты и др. Эти устройства называются устройствами подготовки информации. Сюда относятся устройства набивки, контрольники (для контроля правильно сти набивки), дубляторы (для получения нескольких экзем пляров копий носителей) и др.
171
§5—1. Типы вводных — выводных устройств
Кустройствам ввода'относятся:
а) устройства ввода с перфокарт и перфолент; скорость ввода— >1000 карт в минуту при вводе с перфо
карт и 1000 строк в секунду при вводе перфоленты; ■б) устройства ввода с печатающих машинок и телетай
пов; скорость ввода — 10 знаков в секунду;
в) устройства ввода с мест предварительного накопления информации. Устройствами предварительного накопления мо гут быть магнитные барабаны, диски и ленты, а также малые ЭВМ с их внешней памятью. Скорость ввода — десятки и сотни тысяч бит в секунду;
іг) специальные устройства ввода. Сюда относятся устрой ства ввода данных с датчиков, считывающие устройства с голоса, текста, с экрана электронно-лучевой трубки и т. п.
К устройствам вывода относятся:
а) устройства вывода на широкую печать. Скорость вы
вода—>несколько сот знаков в секунду; |
|
|
|
|
||
б) |
устройства вывода на перфокарты и перфоленты. Ско |
|||||
рость вывода —несколько десятков строк |
в |
секунду; |
|
|||
в) |
устройства вывода на печатающие машинки и телетай |
|||||
пы, экранные и графические устройства; |
в |
другие |
или на |
|||
г) |
устройства вывода из |
одной ЭВМ |
||||
устройства предварительного |
накопления |
данных; |
|
|
||
д) |
>устройства вывода на специальные блоки, цифроанал |
|||||
говые |
преобразователи, управляющие устройства |
и |
др. |
|||
§ 5—2. Структура системы ввода — вывода |
ЦВМ |
Ввод—'вывод информаций в ЦВМ организуется через каналы (рис. 3—1,6). Имеется 2 типа каналов: селекторный и мультиплексный.
Селекторный канал позволяет передавать и принимать
информацию только с одного |
из устройства |
ввода — вывода |
|
в момент времени |
t-v |
подсоединенных |
к ЭВМ через |
Общее число |
устройств, |
селекторный канал, определяется возможностями машины. Большая ЭВМ имеет, как правило, несколько селекторных каналов. Передача данных по селекторному каналу 'происхо дит с большой скоростью—до нескольких сот тысяч бит в секунду. К селекторному каналу подсоединяются магнитные ленты, барабаны, диски, другие ЭВМ, быстродействующие устройства ввода с перфокарт, перфолент и устройства вы вода на широкую печать.
172
Мультиплексный канал позволяет передавать и принимать ■информацию в момент времени t t одновременно с нескольких устройств ввода — вывода. К каналу подсоединяются сотни печатающих машинок, устройства вывода на перфокарты и перфоленты и др., т. е. устройства, работающие с небольшой скоростью.
§ 5—3. Организация работ при выводе
.В современных ЦВМ предусмотрено разделение работы программ ввода—'вывода и вычислительных программ, т. е.
эти процессы могут выполняться одновременно. |
Последова |
тельность работ ввода — вывода организуется |
с помощью |
специальной управляющей программы супервизора. Основой
эффективного |
использование оборудования ввода — вывода |
является так |
называемая система прерывания программ, |
Когда устройство ввода—-вывода готово к передаче данных, оно посылает в систему прерывания'сигнал, по которому ма шина приостанавливает работу над текущей программой и вместо этоГ)0 выполняет программу ввода—вывода. Програм ма ввода—-вывода действует в дальнейшем независимо от центрального процессора в определенном буферном участке памяти. Принятой задаче присваивается определенный при оритет и задача ставится в очередь. Задачи располагаются .в очереди в соответствии с их приоритетами и обычно запоми наются на дисках. После завершения работы с текущей зада чей -в центральную память вызывается следующая и т. д. Такой порядок работы называется групповой, или пакетной обработкой.
Режим работы, при котором в распоряжении пользовате ля имеется определенный набор устройств ввода— вывода и эти устройства работают «независимо» от аналогичных уст ройств другого пользователя, так что пользователь как бы имеет в своем распоряжении всю машину с ее памятью, на^' зывается режимом с разделением времени.
Р А З Д Е Л Ч Е Т В Е Р Т Ы Й
ОСНОВЫ ПРОГРАММИРОВАНИЯ
ГЛАВА I
♦
КОМАНДЫ ЦИФРОВЫХ МАШИН
§ 1—1Г Основные понятия
\
■Программа 'представляет собой последовательность команд, каждая из которых обеспечивает выполнение опре деленной операции (арифметической, логической и т. д.) в машине. Набор всех команд конкретной цифровой вычисли тельной машины образует систему команд этой машины.
Решение задачи на ЦВМ сводится к выполнению различ ных элементарных операций в заданном порядке. Пусть, например, нужно разделить два числа А и В и сохранить частное С. Выполнение этой и всякой другой элементарной операции производится под воздействием команды, которая в данном случае может быть сформулирована следующим образоім: разделить число А, находящееся в некоторой ячей ке МОЗУ ссі, на число В из ячейки МОЗУ а2 и результат деления (частное) С поместить в ячейку МОЗУ р.
Эта команда записывается так:
а , |
а , |
р |
Машины, в которых команды выполняются последова тельно (т. е. после выполнения N-ой команды выполняется N + 1 команда и т. д.), называются машинами с последова тельным, или естественным порядком выполнения команд. Исключение здесь еоставлят так называемые команды пере дачи управления, которые могут передавать управление не следующей, а любой другой команде (в том числе и следую щей) .
В машинах с принудительным порядком выполнения ко манд указывается номер (адрес) ячейки, хранящей ту
J74
команду, которая будет выполняться вслед за данной. Уни версальные вычислительные машины имеют естественный ■порядок выполнения команд.
Номера ячеек памяти называют адресами. Содержанием команды является код операции ( + , — , • X и т. д.). и адреса ячеек памяти. В зависимости от адресности вычислительные машины делятся на:
1) одноадресные;
2 ) двухадресные;
3) трехадресные и т. д.
В одноадресных машинах в командах содержится информация об операции и адресе второго числа. Первое число к началу выполнения опе рации находится на сумматоре арифметического устройства.
Условно одноадресную команду записывают так:
|
КОП |
А |
|
|
КОП — означает код |
операции (сложение, |
деление и т. д.). |
||
А — адрес второго числа |
(номер ячейки, |
в которой хранится вто |
||
рое число). |
так и |
адрес числа |
А |
кодируются двоичными |
Как код операции, |
числами. Например:
Код операции
0001— сложение,
0010— вычитание,
ООП — вычитание модулей, 0100— деление,
0101— умножение и т. д.
Адрес числа А
0001 — первая ячейка МОЗУ,
0375 — 375 ячейка МОЗУ.
|
В двухадресных командах |
ЦВМ, например, типа |
регистр — регистр |
||||
|
|
КОП |
т |
R2 |
|
|
|
код |
операции определяет тип |
операции между содержимыми регистров |
|||||
R1 |
и R2. |
Результат операции |
остается на |
регистре |
R1. |
|
|
|
В командах типа регистр — память |
|
|
|
|||
|
КОП |
|
Х2 |
В2 |
|
Д2 |
|
операция |
выполняется |
между |
содержимым |
регистра |
RI |
и содержимым |
|
ячейки памяти, адрес |
которой |
образуется |
по адресу, |
полученному из |
содержимого индексного регистра Х2 плюс базового регистра В2 и при
ращения Д2. Результат |
выполнения операции остается на регистре 7?1. |
|
В командах типа |
память — память результат выполнения |
операции |
запоминается в одной из ячеек памяти. ' |
|
|
|
I |
175 |
Трехадресная команда содержит код операции и три адреса:
А1 — адрес первого числа; А2 — адрес второго числа;
A3 — адрес ячейки, в которую отсылается результат вы полнения операции и запоминается в одной из ячеек памяти.
45-разрядная сетка электронной вычислительной машины на рис. 4—1 содержит:
kS |
kk |
kl |
кг |
3SS7 |
и |
|
гег5гк |
• • • |
ъ г я г |
- і 4 |
|
|
□ □ |
0 |
[ |
МОП |
|
• |
• |
|
• • |
0 |
|
||
|
|
|
|
• • • |
|
|
A{ |
|
AZ |
|
A3 |
|
JTj |
|
|
|
|
|
|
V"" |
|
|
|
|
|
Рис. 4—1. |
Представление |
команды |
в трехадресной ЦВМ' |
|
||||||||
1) |
6 разрядов для кода операции, |
|
|
|
|
|
||||||
2 ) |
3 разряда для специальных признаков; |
|
|
|
||||||||
3) 3 адреса по 12 двоичных разрядов в каждом адресе. |
||||||||||||
Например, необходимо умножить |
число, |
находящееся |
в |
|||||||||
ячейке, номер |
которой • 12378, |
на |
число |
из |
ячейки |
123-18 |
и |
|||||
результат умножения снова запомнить в ячейке 12378. |
|
|||||||||||
•Допустим, код операции умножения 058. Тогда эта коман |
||||||||||||
да запишется так: |
|
|
|
|
|
|
|
|
|
|||
|
|
05 |
|
1237 |
|
|
1231 |
1237 |
|
|
При записи в ячейку 12378 нового кода старое содержи мое этой ячейки стирается.
В двоичной записи эта команда выглядит таю
000101 |
001010011111 |
001010011001 |
001010011111 |
§ 1—2. Системы команд ЦВМ
Под системой команд ЭВМ понимают общее число раз личных команд, которое может выполнять машина. Число команд ЦВМ определяется количеством разрядов кода опе раций. Если число разрядов КОП равно 6 (рис. 4—1), то система команд такой ЦВМ содержит 26 = 64 команды.
Рассмотрим наиболее употребительные команды системы команд условной 3-адресной мащины.
176
Все операции, которые выполняет цифровая вычислитель ная машина, можно разделить «а 4 группы:
1. Операции над числами.
2. Операции над кодами (числами и командами).
3.Операции управления.
4.Операции обмена информацией между оперативной (внутренней) и внешней памятью.
1.К операциям над числами (арифметическим операциям)
относятся сложение, вычитание, умножение, деление, извле чение квадратного корня и др. Они являются основными операциями для воякой электронной вычислительной машины.
Введем обозначения:
а— номер ячейки (адрес),
(а)— содержимое ячейки с номером а.
Сложение чисел
- + ®і “ 2 Р
(аі) + (а2) -> р, что означает: содержимое ячейки с номе ром си нужно сложить с содержимым ячейки с номером а-2 и результат (сумму) отослать в ячейку с номером р.
Пусть
(си) =35;
Ы= 3.
Тогда в результате выполнения этой команды (р) =38 .
|
|
Вычитание |
чисел |
|
|
— |
|
а 2 |
Р |
Пусть, например сц =і 100, а2 = 101, р = |
105. a (а,) = 200, |
|||
(as) |
=<100. |
|
|
|
Тогда команда будет записана так: |
|
|||
|
— |
100 |
101 |
105 |
В ячейку № 105 будет послано число 100: |
|
|||
|
|
200 — 100 = |
100 =( р ) . |
|
|
|
Умножение чисел |
|
|
|
■X |
*1 |
а 2 |
Р |
(<ц) |
X (а,) -ä- р |
|
|
|
12-32 |
177 |
|
Деление |
чисел |
|
: |
аі |
02 |
Р |
( а ,) : (0С2) — р
Извлечение квадратного корня
V |
ч |
р |
K W — -р
2. К операциям над кодами относятся логические опера ции, операции сдвига, специальные операции над кодами.
Логические операции — это операции сравнения на равен ство, сравнения на .равенство с остановом, логического сложе ния и логического умножения. Все эти операции выполняются поразрядно над всеми разрядами.
Сравнение на равенство
Л _ |
d i |
0 - 2 |
Р |
|
1 с р |
||||
|
|
Если (аі) =1 (d2), то в машине вырабатывается управляю щий признак £0 = 1; если (аі) Ф (аг), то со = 0. Команда условного перехода (УП), которая следует за командой срав нения на равенство, в зависимости от того, равен ли со «1» или «0», разветвляет вычислительный процесс по одному из следующих направлений:
1) машина переходит к выполнению следующей по номе ру команды;
2) машина переходит к выполнению команды программы с номером, который задается в адресе втором А2 команды условного перехода.
Логическое умножение
ЛУ |
аі |
02 |
Р |
ЫА (а2) — Р
Дозначает конъюнкцию по всем г-разрядам.
178
|
Логическое |
сложение |
|
лс |
«1 |
<Х2 |
р |
(си) V(a2) -> р
V — означает дизъюнкцию по всем /-разрядам.
Пример 1. Сравнить числа КШО и 11010 на равенство.
+ ср «1 я2 Р
|
|
(Яі) =10110 |
10110 |
|
|
||
|
|
(я2) = |
11010 |
-U pllOlO |
|
|
|
Коды не равны, |
ш = 0, |
|
01100 |
|
|
||
(р) = 01)100. |
|
|
|
||||
Пример' 2. Произвести логическое сложение кодов 10110 и МОЮ. |
|||||||
|
лЪ |
|
«1 |
а2 |
р |
|
|
|
К ) = |
Щ ііі'О |
|
101110 |
|
|
|
|
(я2) = |
111010 |
|
V |
|
|
|
|
|
:1!101і0 О) = |
о |
|
|
||
|
|
|
|
|
|
||
|
|
|
1(1(1 10 = |
1ІІМО |
|
|
|
|
|
|
(Р). |
|
|
|
|
Пример 3. |
Провести логическое |
умножение кодов 10.Ы0 |
и |
ПОЮ. |
|||
|
ЛУ |
|
|
“г |
Р |
|
|
|
(«,) = |
101(10 |
|
іо т о |
(0=0 |
|
|
|
(я) = |
т о ю |
|
Л |
|
|
|
|
|
ІіШІО |
|
|
|
||
|
|
|
1001(0 = |
1М 10 |
|
|
|
|
|
|
(Р). |
|
|
|
|
|
|
Операции сдвига |
|
|
|
||
|
|
|
УЧ |
» |
|
|
|
|
Сд |
|
а |
9 |
|
|
|
УЧ— условное число, |
которое |
определяет |
количество |
сдви |
|||
гов и его направление (вправо или влево). |
|
|
|||||
а —помер |
ячейки, содержимое которой |
сдвигается, |
|
||||
р — номер ячейки для отсылки результата. |
і |
|
12* |
179 |