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

книги из ГПНТБ / Преснухин, Л. Н. Цифровые вычислительные машины учебное пособие

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

может быть прямо подан на сумматор, а второй операнд — в регистр Ргы или Рг2ы. При умножении мантисса множимого помещается, например, в регистр Ргы , а мантисса множителя — в регистр Ргы . Код множителя сдвигается и управляет суммированием. Поэтому нет необходимости связи регистра множителя с сумматором.

§ 5.5. АРИФМЕТИЧЕСКИЙ УНИВЕРСАЛЬНЫЙ ОПЕРАЦИОННЫЙ БЛОК ДЛЯ ОПЕРАЦИЙ НАД ЧИСЛАМИ, ПРЕДСТАВЛЕННЫМИ В ПОСЛЕДОВАТЕЛЬНОМ КОДЕ,

И ЧИСЛАМИ С РАЗЛИЧНЫМ КОЛИЧЕСТВОМ РАЗРЯДОВ В КОДЕ

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

В сумматоре

комбинационного типа все сигналы на входы подаются

 

 

 

 

 

одновременно, в сумматоре нака­

 

 

СМ

 

 

пливающего типа эти сигналы раз­

 

 

 

1..■’ ■ОЗУ

несены по времени.

 

 

 

с

Р гс

 

 

 

п

 

 

Функциональная схема универ­

 

 

 

 

 

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

ариф­

 

 

 

 

 

метического

операционного

блока

 

 

 

 

 

приведена на рис. 5.9, где Е М У

ч

~

Р г„

к -

 

блок местного

управления.

При

О ЗУ

_______ 1

 

 

,сложении чисел

исходные слагае­

ОЗУ

 

 

 

------- (

 

 

мые помещаются в регистры РгА и

 

 

 

 

 

 

Рга

 

 

1

 

 

Ргв. Сумма получается в регистре

 

 

 

Рис. 5.9. Функциональная схема уни­

Ргс. Вычитание в последователь­

версального последовательного ариф­

ных устройствах обычно произво­

метического операционного блока

дится в дополнительном коде. При

 

 

 

 

 

сложении в

обратных кодах воз­

никает сигнал циклического переноса, поэтому для получения резуль­ тата требуется два цикла суммирования. Дополнительный код в машине получается из обратного кода путем добавления единицы. Добавление единицы может выполняться при суммировании чисел, так что допол­ нительное время на преобразование не требуется. На сложение — вычитание «-разрядных чисел в последовательном арифметическом операционном блоке используется «-тактов. Если длительность такта равна т, то время суммирования 7Д:

7 Д = т « .

(5.11)

Рассмотрим выполнение операции умножения в последовательном арифметическом операционном блоке (см. рис. 5.9). Поместим множи­ тель в регистр РгА, множимое — в регистр Ргв, частичное произведе­ ние будем накапливать в регистре Ргс. Умножение выполняется по

240

схеме умножения младшими разрядами вперед и сдвигом множителя и частичных произведений вправо. В зависимости от значения инфор­ мации в данном разряде множителя в сумматоре происходит суммиро­ вание частичного произведения с нулем или множимым. Затем частич­ ное произведение сдвигается на один разряд и суммирование продол­ жается: Время умножения

Т уин = п(пх) = п2х.

(5.12)

Для ускорения операции умножения в последовательных блоках можно использовать различные логические и аппаратные методы. Рассмотрим выполнение операции умножения с умножением сразу на

три разряда множителя (рис. 5.10).

 

Множимое

помещается в регистр

 

Рг^, множитель — в регистр

Ргв.

 

Частичные произведения, получае­

 

мые в последовательном суммато­

 

ре СМ, накапливаются в регистре

 

частичных

произведений Ргс.

 

В отличие от ранее рассмотрен­

 

ной схемы в данный блок введен

 

узел А формирования чисел, крат­

 

ных множимому. С помощью этого

 

узла вырабатывается множимое, а

 

обратный

код а множимого полу­

 

чается при прохождении последова­

 

тельного кода через инвертор НЕХ\

 

линия задержки D на один такт т

 

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

 

чение множимого, т. е. множимое,

 

сдвинутое

на такт: двойная за­

Рис. 5.10. Структурная схема блока

держка дает учетверенное

значе­

умножения на три разряда множителя

ние множимого. В дополнительном сумматоре СМ' сложением кодов а и 2а формируется утроенное мно­

жимое. С помощью инверторов НЕ2, HES> НЕХ образуются коды мно­ жимого — 2а, — За, — 4а. Таким образом, получается, что в узле А сформировано восемь чисел, кратных множимому. Коды этих чисел через схемы И по сигналам от узла местного управления УМУ по­ даются в схему ИЛИ, а затем в сумматор СМ. УМУ анализирует одновременно три разряда множителя, с помощью которых можно представить восемь комбинаций, начиная от 000 и кончая 111. По­ скольку все кратные множимому заготовлены схемой А, то операция умножения на три разряда требует только одного суммирования. Таким образом, в данной схеме время умножения

Т умн = пН/3.

(5.13)

' Одной из устоявшихся концепций при проектировании ЦВМ первых поколений было использование чисел фиксированной длины. Такие числа использовались как для представления данных, так и команд. В универсальных вычислительных машинах постепенно

241

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

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

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

§ 5.6. АРИФМЕТИЧЕСКИЙ ОПЕРАЦИОННЫЙ БЛОК ДЛЯ ОПЕРАЦИЙ НАД ЧИСЛАМИ

В ДЕСЯТИЧНОЙ СИСТЕМЕ СЧИСЛЕНИЯ

Сумматоры для суммирования чисел в десятичной системе счисления образуютбя из одноразрядных суммирующих схем, как и в случае использования чисел в двоичной системе счисления. Вследствие двоичного характера электронных элементов в вычислительной технике применяют двоично-кодированное представление десятичных чисел. ■ При этом каждый десятичный разряд числа представляется не менее чем четырьмя двоичными разрядами (24 = 16).

Одноразрядный комбинационный десятичный сумматор имеет2яг+1 входов и т + 1 выходов. Каждое слагаемое и сумма имеет т разрядов (,т Дэ 4), на входе сумматора присутствует сигнал переноса из преды­ дущего младшего разряда, а на выходе кроме m-разрядной суммы вырабатывается сигнал переноса в старший разряд.

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

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

242

При последовательном кодировании цифр одноименные разряды слагаемых поступают одновременно, а сами разряды — последователь­ но. Сигналы переноса из данного i-ro разряда при суммировании двух цифр слагаемых xt и y h а также цифры переноса zt_i из младшего раз­ ряда возникают в случае, когда выполняется соотношение

(X i + iji + Z i ) > 9 . ' (5 .1 4 )

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

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

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

§5.7. УПРАВЛЕНИЕ ВЫПОЛНЕНИЕМ ОПЕРАЦИЙ

ВПРОЦЕССОРНЫХ ОПЕРАЦИОННЫХ БЛОКАХ

Блок центрального управления. Командная информация в ЦВМ, как правило, кодируется только в двоичной системе счисления. Это связано с более высокой эффективностью использования двоичных электронных элементов для представления двоичной, а не двоичнокодированной десятичной информации. Поэтому все коды опера­ ций, адреса операндов и служебные части команд выражаются опре­ деленным количеством двоичных разрядов. Двоичная адресация опре­ деляет особенность построения адресных систем ЗУ. Емкость ЗУ равна 2п чисел, где п — число двоичных разрядов в коде адреса.

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

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

2 4 3

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

При разработке ЦВМ первых поколений центральное устройство управления являлось ядром, объединяющим и синхронизирующим

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

Как указывалось ранее, автоматизация-вычислений в ЦВМ воз­ можна за счет последовательного выполнения операций, заданных

 

командами

и записанных в

 

ОЗУ.

 

 

 

 

 

В зависимости

от способов

 

управления

выполнением

опе­

 

раций в машине различают син-.

 

хронный, асинхронный и сме­

 

шанный принципы

управления.

 

Для реализации этих принци­

 

пов управления используют опе­

 

рационные блоки центрального,

 

местного или смешанного управ­

 

ления.

 

 

 

 

 

В операционных блоках цен­

 

трального управления, реали­

Рис. 5.11. Общая структурная схема бло­

зующих

принцип

синхронного

ка центрального управления операциями

управления

операциями,

дли­

 

тельность

рабочего цикла ЦВМ

выбирается постоянной и одинаковой для всех реализуемых операций. Число тактов в цикле постоянно из-за неодинакового количества микроопераций при выполнении различных операций в течение цикла (в некоторых тактах машина действий не производит).

Отметим следующие характерные черты блока центрального управ­ ления и его работы:

а) длительность цикла одинакова и равна определенному числу тактов;

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

ния такта.

Рассмотрим общую структурную схему блока центрального управ­ ления операциями (рис. 5.11). Эта схема характерна для ЦВМ с прину­ дительным последовательным выполнением команд. Задающий гене­ ратор ЗГ выдает сигналы определенной частоты на датчик тактов Д Т и датчик циклов ДЦ. Датчик.тактов Д Т формирует временную после­ довательность сигналов, необходимую для выполнения операций во времени. Сигналы этой временной последовательности поступают на центральный узел управления операциями ЦУОп.

24 4

ДЦ , подсчитывая число импульсов ЗГ, определяет временные мо­ менты окончания циклов и изменяет на единицу состояние счетчика команд СчК в каждом цикле. Код, записанный в СчК, определяет адрес ячейки ОЗУ, где записана требуемая для выполнения в следую­ щем цикле команда.

Код команды из ОЗУ передается в регистр команд РгК, состоящий из двух частей: операционной части —- регистра операций РгОп и адресной части, содержащей код (коды) адресов, регистра адреса РгА. Регистр РгОп связан с дешифратором операций ДШОп, имеющем выходов, если РгОп содержит г разрядов. Возникающий на любой из шин потенциал сохраняется в течение всего цикла и определяет выполнение в данном цикле одной, определенной, из операций, заданную кодом на РгОп. Необходимая для выполнения данной операции последова­ тельность сигналов вырабатывается ЦУОп по одному сигналу с ДШОп

Рис. 5.12, Общая структурная схема блока местного управ­ ления операциями

и временной последовательности тактирующих сигналов, вырабаты­ ваемых Д Т.

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

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

' Общая структурная схема блока местного управления операциями приведена на рис. 5.12. От схемы блока центрального управления она отличается тем, что имеет узел местного управления операциями М У On, в котором есть свои собственные цепи для управления каждой

245

машинной операцией: сложением (+ ), вычитанием (—), сдвигом Сдв и т. д. При этом имеется обратная связь на датчик тактов Д Т , который прекращает выработку тактовых сигналов по сигналу фактического окончания выполнения операции. Блок местного управления посылает сигналы в операционные блоки процессора ОпБлПр, ОЗУ и УВВ информации.

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

При смешанном принципе уп­ равления выполнением операций стандартный цикл устанавливает­ ся для групп операций, по своему

м м м т

Рис. 5,13. Структурная схема блока сме­

Рис. 5.14,

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

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

тельностей

тактовых импульсов в де-

 

шифраторном датчике тактов

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

схема блока смешанного

управления

приведена на рис. 5.13, где

МУOn — блок местного

управления;

ЦУОп — блок центрального

управления; ДШ — дешифратор операций; РгОп — регистр операций; PaAi — регистр адреса; Д Т — датчик тактов; Д Ц —- датчик циклов; СчК — счетчик команд.

Датчики тактовых импульсов блоков управления. Рассмотрим фор­ мирование последовательностей тактовых импульсов в дешифраторном датчике тактов (рис. 5.14). Временная диаграмма работы датчика при­ ведена на рис. 5.15.

Датчик тактов (см. рис. 5.14) состоит из трех узлов: дешифратора ДШ, счетчика Сч и узла управления УУ. Для формирования тактовых

246

импульсов используются последовательности главных импульсов ГИ и сдвинутых главных импульсов СГИ, вырабатываемых блоком цент­ рального управления. Период повторения тактовых импульсов равен периоду серии СГИ. Количество тактовых импульсов равно 2я, где п — число триггеров счетчика.

Пусть все триггеры узла управления УУ и счетчика Сч сброшены

в«О» состояния сигналом Уст. «О». Для начала работы датчика тре­ буется выработать сигнал Пуск. Этот сигнал в общем случае приходит

впроизвольный момент времени. Если на выходе триггера ^ у с та н о ­ вился выходной уровень до прихода ближайшего по времени импульса 1

(см. рис. 5.15) серии СГИ, то импульсом логической схемы И0 триггер Го будет установлен в «1» состояние. Высокий уровень триггера Т2

разрешает

прохождение

серии

 

 

 

 

 

импульсов ГИ, начиная с им­

ги

Ч I

| ..г I I

I I I

I___ L

пульса 2,

на вход

счетчика Сч,

СГИ

Ц - 1

J _____1_

J__ I__ 1__L

построенного по схеме со сквоз­

Т,

 

 

 

 

ным

переносом.

Длительность

Гг

 

 

 

 

сдвига

между последовательно­

Т,

 

 

 

 

стями импульсов ГИ и СГИ

П -

 

 

 

выбирается достаточной для за­

Т ,

-

 

 

 

вершения переходных процессов

с,

'

 

 

 

в Сч и ДШ. Поэтому импульсы

£г

 

 

 

СГИ проходят на выходы

С8

с,

-

 

 

 

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

по мере

пере­

С,

 

 

 

хода счетчика Сч в новое состоя­

С ■

 

 

 

с6 ■

 

 

 

ние

в

моменты

установления

 

 

 

с7 ■

 

 

 

выходных

импульсов дешифра­

 

 

 

Сг

 

 

 

тора ДШ.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Восьмой импульс ГИ вызы­

Рис. 5.15.

Временная

диаграмма

работы

вает сброс счетчика Сч и появле­

 

 

датчика тактов

 

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

Поэтому датчик тактов продолжает работать и вырабатывает вторую, третью и т. д. последовательности тактовых сигналов. Если включить режим работы по циклам подачей сигнала Цикл на триггер Т0, то высокий уровень триггера разрешит прохождение импульса С0 через схему Ип. Импульс С0, пройдя через схему совпадения ИЛИ, устано­ вит в «О» состояние триггеры 7 \ и Т2. Таким образом, при включенном сигнале Цикл датчик тактов будет выдавать одну последовательность тактовых импульсов при каждой подаче сигнала Пуск.

В любой момент времени последовательность тактовых импульсов прерывается сигналом Останов. После останова датчика тактов на одном из выходовдешифратора ДШ имеет место высокий уровень потенциала, поэтому импульсы СГИ будут проходить на выход, если их не заблокировать схемой совпадения Их. Схема И1 управляется триггером блокировки Т, который включается импульсами пуска счетчика и выключается при останове датчика тактов.

В быстродействующих ЦВМ и ВС в качестве датчика тактов полу­ чили распространение сдвигающие регистры. Принцип построения

247

такого датчика рассмотрим на примере пятиразрядного регистра (рис. 5.16). Датчик позволяет получить столько тактовых импульсов, сколько разрядов в регистре. В первый разряд регистра записывается «1», затем подается серия главных импульсов Г И. На выходах С1 -г- С5 последовательно появляются тактовые сигналы. Поскольку триггеры соединены в виде кольцевого сдвигающего регистра, то после окон­ чания одного цикла выдачи тактовых сигналов следует второй, третий и т. д. Для работы по циклам необходимо ввести управление, аналогич­ ное используемому в дешифраторном 'датчике тактов.

Одной из особенностей рассматриваемого датчика тактов является возможность пропуска тактовых сигналов без затрат времени. Инфор­ мационная передача от второго разряда регистра может быть выпол­ нена в третий разряд через схемы совпадения Иг и И[ при А = 1, А = 0 ,

Рис. 5.16. Принцип построения датчика тактов на основе сдви­ гающего регистра

или в пятый разряд через схемы совпадения Я2, Я 2 при А = 0, А = 1. Поэтому при А = 1 = 0) датчик выдает полную серию тактовых импульсов, при А = 0 = 1) датчик выдает последовательно только импульсы Сг, С2 и С5. Чтобы блокировать передачу информационного состояния триггера Т4 при А = 0, в схемы совпадения Я3 и И'3 введены входы А.

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

Индексный арифметический блок. Поскольку программу работы ЦВМ записывают в виде системы цифровых кодов в ОЗУ, то над коман­ дами программы могут выполняться различные арифметические и логи-' ческие операции как над обычными двоичными числами. В результате автоматического преобразования команд программы в вычислительной машине уменьшаются затраты труда на программирование и значи­ тельно снижается емкость ОЗУ, требуемая для записи программы.

24 8

Одной из важнейших задач при преобразовании кодов команд явля­ ется модификация адресов, которая выполняется следующим образом (рис. 5.17). Код модификации КМ команды определяет адрес индексного регистра, в котором записан код индекса K I и код служебной части индекса КСч1. В результате модификации определяется код исполни­ тельного адреса К А ', как сумма кодов адреса команды КА и индекса

K I. Аналогично производится мо­ дификация адресов двух- и трех­ адресных команд. Код служебной части индекса используется при организации циклов вычислений и других преобразований программы

иее отдельных частей.

ВЦВМ первых поколений в Рис. 5.17. Принцип модификации ад­

качестве индексных регистров на­

ресов

значались некоторые ячейки ОЗУ.

 

Модификация адресов выполнялась в сумматоре арифметического устройства.

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

 

 

Наличие автономных блоков индексации поз­

 

 

воляет проводить операции модификации па­

 

 

раллельно с другими вычислениями в ЦВМ

 

 

и ВС.

 

 

 

 

 

 

 

На рис. 5.18 приведена функциональная

 

 

схема блока модификации команд при исполь­

 

 

зовании

отдельного

индексного

ОЗУ

ИОЗУ

 

 

и блока

индексной

арифметики

Б ИА.

Коды

ла

 

команд из ОЗУ поступают в буферное ЗУ

БЦЯ

команд

Б ЗУ К . Блок

местного

управления

Рис. 5.18. Функциональ­

Б М У анализирует коды команд на выходном

ная схема блока модифи­

регистре БЗУК и передает команду по ко­

кации

команд

довой магистрали в блок центрального управ­

 

 

ления БЦ У ЦВМ и BCV если модификация

команды

не требуется.

Если требуется провести модификацию коман­

ды, то адресная часть

кода команды подается

в Б ИА,

куда

посту­

пает также значение кода индекса из ИОЗУ по адресу, определенному в служебной части кода команды. Вычислительный исполнительный адрес и остальная часть кода команды передаются в буферный регистр команд БРгК, а из него по кодовым магистралям в блок центрального управления БЦУ.

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

2 4 9

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