![](/user_photo/_userpic.png)
книги из ГПНТБ / Филимонов Г.А. Основы цифровых устройств систем управления учебное пособие
.pdfВ зависимости от кода приращения л х / + I или - I / ,
запоминаемого в |
блоке |
дсс,код |
числа |
поступает в од |
|||
норазрядный сумматор |
Здесь |
происходит |
суммирование |
||||
* |
с кодом числа $ из регистра S , где |
хранится оста |
|||||
У-ср |
|||||||
|
|
|
|
|
|
||
ток интеграла $ |
от предыдущего |
суммирования |
|
|
|||
|
|
|
S ‘- S ± y ср |
|
Л 8 0 / |
||
|
Приращение |
д £ |
на выходе |
интегратора |
/ + I |
или - I / |
|
выдается с помощью специальной |
схемы кодирования |
прираще |
|||||
ний. |
|
|
|
|
|
|
§24. Структура и система команд, применяемых
вцифровых машинах
Автоматическая работа машины заключается в последова тельном выполнении операций, предусмотренных программой. Каждая операция выполняется под действием специального уп равляющего сигнала, называемого командой. Команда представ ляет собой число, закодированное чаще всего в двоичном ко де.
Все |
команды могут быть разделены на два основных типа: |
|
а / |
команды арифметических и логических операций, вы |
|
полнение |
которых связано с действиями над числами} |
|
б / |
команды управления, служащие для управления работой |
|
машины /изменение порядка выполнения программы, |
остановка |
|
машины, изменение режима работы и т . д . / . |
|
|
Команды, обеспечивающие выполнение арифметических и |
||
логических операций, содержат в себе две группы |
сведений» |
о том, какую операцию необходимо выполнить} о том, откуда
взять |
исходные числа |
и куда |
направить |
результат |
операции. |
В |
соответствии |
с этими |
сведениями |
команда |
содержит |
две группы цифр. Одна группа представляет собой код опера ции, а другая - адреса исходных данных и результата. Адре са указывают номера ячеек запоминающего устройства, в ко
190
торых хранятся исходные числа, а также номер ячейки, куда должен быть записан результат операции над этими числами.
Взависимости от конструкции машины в состав команды может входить различное количество адресов. Бывают одно-, двух-, трех и четырехадресные команды. В соответствии с этим машины называют одно-, двух-, трех- и четырехадрес ными.
Всоответствии со способами выполнения команд рабо чей программы существуют два типа машин: с естественным
ис принудительным порядком выполнения команд. В машинах первого типа все команды записываются в ячейки запоминаю щего устройства в порядке их выполнения. Ячейки, хранящие эти команды, имеют адреса, возрастающие по порядку номе
ров. В связи с этим после выполнения команды, записанной в очередной ячейке, машина переходит к выполнению команды хранящейся в ячейке с номером на единицу большим. Подоб ным образом работа продолжается до конца программы или до той команды, которая может изменить порядок выполнения вы числений. В машинах второго типа в очередной команде ука
зывается адрес ячейки, хранящей |
следующую команду. |
||
Рассмотрим более подробно |
структуру команд, применя |
||
емых в цифровых машинах различных типов. |
|||
Трехадресная |
команда |
||
Трехадресная |
команда имеет |
вид |
|
0101 |
0237 |
0421 |
01. |
Здесь первые |
три группы цифр - адреса, четвертая груп |
па - код операции. Данная команда имеет следующее содержа
ние: "взять число |
из ячейки №0101, другое |
число |
взять из |
ячейки К 0237j эти |
числа сложить /считаем, |
что 01 |
- код |
операции сложения/; результат операции /сумму/ записать в ячейку №0421".
Взаимное расположение адресов и кода операции на блан ке программы может быть и не таким, как в приведенной выше
191
записи. Например, возможен и такой вид той же трехадрес ной команды
01 0101 0237 0421.
Следует указать, что структура команд является впол не определенной для данной конструкции машины и поэтому произвольно записывать команду в том или ином виде нельзя. Трехадресная команда выполняется за один рабочий такт.
Большинство трехадресных машин имеет естественный порядок выполнения команд.
Одноадресная команда
Такая команда содержит один адрес и код операции. Арифметическое устройство одноадресных машин должно иметь один или несколько регистров, которые используются для хранения промежуточных результатов.
Для выполнения рассмотренной выше операции сложения потребуется три одноадресные команды следующего содержа ния:
0101 02
Данная команда означает: "число, хранящееся в ячейке №0101 перенести в сумматор /02 - код операции переноса числа из ячейки памяти в регистр сумматора/".
Следующая команда
0237 01
означает: "число, записанное в ячейке №0237, прибавить к содержимому сумматора, результат сложения оставить в сум маторе".
Третья команда 0421 16
означает: "содержимое сумматора переписать в ячейку * 0421 /восьмеричное число 16 является кодом операции переноса числа из регистра сумматора в ячейку памяти машины/ ,
Для выполнения этих одноадресных команд требуется три
192
рабочих такта машины. Естественно, что программа одной и той же задачи в одноадресной машине должна содержать боль шее число команд, чем в трехадресной.
Одноадресные машины могут иметь только естественный порядок выполнения команд. Следует отметить, что одноадрес ные машины проще по конструкции в сравнении с другими ти пами машин, а поэтому специализированные машины чаще всего выполняются одноадресными.
Двухадресная команда
Двухадресные команды могут применяться как в машинах с естественным, так и в машинах с принудительным порядком выполнения команд.
В двухадресной команде, применяемой в машине с есте ственным порядком выполнения команд, указываются адреса обоих исходных чисел. Адрес результата совпадает с адре сом одного из этих чисел.
При записи на бланке программ такая команда может иметь следующий вид:
01 0321 0652.
Расшифровывается команда следующим образом: "от числа стоящего в ячейке №321, отнять число, которое хранится в
ячейке К 0652 |
/01-код |
операции |
вычитания/} разность запи |
сать в ячейку |
* 0652} |
при этом |
исходное число, хранивше |
еся в ячейке № 0652, |
автоматически стирается при занесении |
на его место результата выполненной операции.
Если же результат необходимо поместить в определенную ячейку, то необходимо выполнить еще одну команду, например
15 0652 0125,
которая словесно может быть выражена тая: "число, записан ное в ячейке № 0652, перенести в ячейку К 0125 /15 - код операции переноса числа из одной ячейки памяти в другую/".
Двухадресные машины с принудительным порядком выпол
13 |
193 |
нения команд работают, как одноадресные. При этом во вто ром адресе указывается номер ячейки, которая содержит сле дующую команду.
Полутораадресная команда
Модификацией двухадресной системы команд является по лутораадресная команда. В этой команде также указывается два адреса, только один адрес указывается полным числом разрядов и может обозначать номер любой ячейки памяти, а второй адрес указывается половинным числом разрядов и мо жет обозначать номера ячеек памяти только в некоторой оп ределенной ее области. Последнее ограничение не является существенным, так как в большинстве случаев один из адре сов относится к рабочим ячейкам, которые могут распола
гаться в определенной |
ограниченной области памяти. Вместе |
с тем полутораадресная |
система команд, сохраняя преиму |
щества двухадресных команд, позволяет существенно умень шить потребное для представления команды количество раз рядов.
Обычно номера ячеек памяти, на которые указывает вто рой адрес команды, устанавливаются заранее, например, наз
начаются ячейки с номерами от 4300 до |
4377, тогда |
ячейка |
||
за номером 4326 будет отражена во втором адресе |
двумя |
|||
восьмеричными цифрами 26. |
|
|
|
|
Для сложения чисел, находящихся |
в ячейках fc |
0234 и |
||
I 0425, и записи результата в ячейку № 0157 потребуется |
||||
три полутораадресные команды. Первая |
команда |
|
||
15 |
0234 |
26 |
|
|
означает: "число, хранящееся в ячейке № 0234, перенести в ячейку * 4326".
Вторая команда
01 0425 26
требует: "число, записанное в ячейке № 0425, сложить |
с |
194
числом, хранящимся в ячейке В 4326, а результат сложения записать в ячейку К 4326".
Третья команда
) |
04 |
0157 26 |
означает: |
"число |
из ячейки №4326 перенести в ячейку № 0157" |
/04 - код операции переноса числа из ячейки, указанной во
втором адресе, в ячейку с |
номером, указанным в первом ад |
р есе /. |
|
Четырехадресная |
команда |
Четырехадресные команды применяются в машинах с при нудительным порядком выполнения команд. Три первых адреса имеют такое же назначение, как и в трехадресной команде.
Четвертый адрес указывает ячейку, в которой хранится оче редная команда.
Например, четырехадресная команда
01 0324 0245 0152 0362
расшифровывается следующим образом: "числа, записанные в ячейках № 0324 и №0245, надлежит сложить, результат за писать в ячейку В 0152, а затем перейти к выполнению ко манды, записанной в ячейке * 0362".
Принудительный способ выполнения команд усложняет про цесс программирования, так как при этом необходимо допол нительно определить порядок размещения команд в памяти ма шины. Однако этот способ является выгодным для машин по следовательного действия, имеющих запоминающие устройства с последовательной выборкой чисел /магнитные барабаны, ли нии задержки/, так как позволяет существенно сократить вре мя решения задач путем применения так называемого "опти мального программирования". Сущность оптимального програм
мирования |
заключается в том, |
что |
команды в |
памяти записы |
|
ваются таким образом, чтобы |
очередная команда находилась |
||||
в ячейке |
памяти, следующей |
за |
той |
ячейкой, |
в которой дол- |
195
жен быть записан результат предыдущей операции.
Система команд
Каждая цифровая машина может выполнять вполне опреде ленный набор элементарных операций, который называется си стемой команд. В общем случае система команд цифровых ма шин общего назначения состоит из нескольких десятков опе раций, которые можно разделить следующим образом:
I / |
группа |
посылочных |
операций, |
которая предназначена |
для |
||
|
обмена информацией между |
арифметическим и запоминающим |
|||||
|
устройством; |
|
|
|
|
|
|
2 / |
группа |
арифметических операций; |
|
||||
3 / |
группа |
логических |
операций; |
|
|
||
4 / |
группа |
операций |
управления; |
|
|
||
5 / |
группа |
операций |
обращения |
к |
внешним накопителям и |
ус |
тройствам машины.
В качестве примера приведем несколько операций из си стемы команд одноадресной машины.
Таблица 7
Код
операции
I
01
02
•
•
•
06
07
Операция |
Команда |
|
2 |
|
3 |
Сложение чисел |
/ с / + / а / |
01а |
Посылка числа |
из ячейки |
02а |
а в сумматор |
|
|
Умножение чисел / с / |
• / а / |
0,6а |
Деление чисел / с / : |
/ а / |
0,7а |
•
•
•
196
I |
2 |
|
3 |
|
14 |
Сравнение чисел / с / |
и / а / |
14а |
|
• |
|
|
|
|
о |
|
|
|
|
16 |
Посылка числа / с / в |
ячейку а |
16а |
|
• |
|
|
|
|
• |
|
|
|
|
21 |
Условная передача управления |
21а |
|
|
• |
|
|
|
|
• |
|
|
|
|
37 |
Останов машины |
|
37а |
|
/ с / |
и / а / - условные обозначения соответственно |
со |
||
держимому |
сумматора и ячейки за номером aj |
а - адрес |
ко |
|
манды. |
|
|
|
|
В специализированных машинах система команд может быт* сокращенной, необходимой для решения небольшого класса за дач. Сокращение числа элементарных операций в системе ко манд приводит к упрощению схемы устройства управления ма шины.
§ 25. Структура устройства управления специализи рованных машин
Устройство управления электронной цифровой вычисли тельной /управляющей/ машиной предназначается для обеспе чения автоматического решения задач в процессе управления тем или иным объектом. Решение осуществляется по програм ме путем принудительной координации работы всех блоков и устройств машины. Поэтому основной функцией управления ра ботой самой машины является выработка командных импульсов и потенциалов в определенные моменты времени согласно про-
197
грамме решения задачи.
В состав устройства управления обычно входят следую щие основные блоки: центрального управления машиной; ко манд; центрального управления операциями; выработки управ ляющих сигналов.
На рис.125 представлена упрощенная схема устройства управления. Блок центрального управления /ЦУ/ обеспечива ет выборку из оперативного запоминающего устройства /ОЗУ/ очередной команды, а также чисел, с которыми производится та или иная операция, запись результата в ОЗУ или сохране ние его в арифметическом устройстве. Блок центрального уп равления на основании импульсов, поступающих от генерато ра импульсов ГИ, вырабатывает серию управляющих импульсов через блок центрального управления операциями /ЦУОп/, воз действует на различные устройства машины.
Количестве необходимых сигналов, вырабатываемых бло ком ЦУ, определяется числом элементарных действий, которые необходимо выполнить в такте. Каждая команда /одна арифме тическая или логическая операция/ выполняется в течение од ного рабочего такта машины. Весь рабочий такт можно разбить на три этапа.
Первый этап. Устройство управления посылает в запоми нающее устройство адрес очередной команды. Извлеченная по этому адресу команда снова подается в устройство управле ния, которое разделяет ее на две части: код операции на правляется в арифметическое устройство, а адреса посылают ся в запоминающее устройство. Арифметическое устройство на страивается на выполнение той операции, которая определяет ся поступившим в него кодом. Запоминающее устройство на страивается на выдачу первого исходного числа из ячейки, номер которой указан в первом адресе команды, затем - на выдачу второго исходного числа из ячейки, номер которой указан во втором адресе. Оба числа поступают в арифметиче ское устройство. Одновременно запоминающее устройство под готавливается к приему числа в ячейку, указанную в третьем
198
адресе команды.
Второй этап. Арифметическое устройство выполняет требуемую операцию. Этот этап занимает 50-70# всего рабо
чего такта |
машины. |
* |
Третий |
этап. |
Результат операции, который выдается |
из арифметического |
устройства, заносится в ячейку, ука |
занную в третьем адресе. Одновременно устройство управле ния вырабатывает адрес команды, которая будет выполнять ся в следующем рабочем такте.
Продолжительность такта определяется временем обра щения к ОЗУ, а также временем выполнения самой операции, складывающимся из времени передачи чисел и команд по це пям связи и времени работы арифметического устройства.
Такт работы блока ЦУ может быть как постоянным, так и переменным. Длительность постоянного /фиксированного/ такта выбирается по операции, требующей наибольшего вре мени для своего выполнения. Однако при этом снижается об
щее быстродействие, так как |
время выполнения большинства |
||
операций значительно меньше, |
чем время такта, |
выбранное |
|
с расчетом на самую продолжительную |
операцию. |
Машины, |
|
имеющие фиксированный такт, |
называются синхронными. |
||
Существуют асинхронные |
машины, |
у которых |
теист работы |
не фиксировал. Выполнение очередной операции в этих машинах начинается сразу после окончания предыдущей. В асин хронных машинах блок ЦУОп вырабатывает управляющий сиг нал, по которому начинается выполнение новой операции.
Блок команд /БК / предназначен для определения адреса очередной команды, выборки ее из ОЗУ и выдачи на регистр команд для исполнения и хранения ее в течение всего такта работы блока ЦУ. Адресная часть команды передается на счет чик адреса числа. По заданному адресу выбирается число для выполнения операции. Код операции, содержащийся в команде, связан с дешифратором, имеющим столько выходных шин, сколь ко операций выполняет машина. Выходные цепи дешифратора воздействуют на блок ЦУОп. Например, наличие высокого по
199