Процессоры ЭВМ. Рабочий цикл

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

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

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

Частями команды в нашем примере являются код опе­рации и три кода адресов (первого, второго и третьего). Кодами адресов (или коротко адресами) обычно называют номера ячеек некоторого ЗУ, в нашем случае — оператив­ной памяти. Ячейками называются наименьшие части ЗУ, к которым данный процессор имеет отдельный доступ. В опе­ративной памяти каждая ячейка имеет имя, иначе говоря, номер. Это имя и является ее адресом.

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

Описывая принцип действия процессора, на схеме (рис. 3) укажем лишь принадлежащие ему ЗУ. Устройство управления и операционное устройство показывать не бу­дем. Их функции опишем в тексте, объясняющем работу процессора. На рис. 3 показана лишь одна группа ЗУ связи. Таких групп может быть столько, сколько в состав ЭВМ входит процессоров, контактирующих с данным.

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



Например, x+y=z означает, что содержимое ячейки х, сложенное с содержимым ячейки у, равно содержимому ячейки z. Формула х+1=z означает, что содержимое ячей­ки х, увеличенное на 1, равно содержимому ячейки z. За­пись zi будет означать содержимое ячейки, имя которой содержится среди ячеек z1, z2, ..., zN, причем значение индекса ее содержится в ячейке с именем i.

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

Приступим теперь к описанию работы центрального процессора, ЗУ которого приведены на рис. 3.

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

1. Содержимое ячейки t сравнивается с единицей. Если оно совпадает с единицей, то выполняется п. 2, иначе (если оно совпадает с нулем) снова выполня­ется п. 1.

2. Содержимое ячейки zl переносит­ся из оперативной памяти в регистр команд r. Далее выполняется п. 3.

3. Содержимое ячейки l увеличива­ется на единицу. Далее см. п. 4.

4. Выполняется операция, которая указана в ячейке 8. Далее см. п. 20.

20. Далее выполняется п. 1.

Приведенное описание работы явля­ется самым укрупненным. Способ вы­полнения операции θ в нем не указан. Пункт 20 включен для удобства даль­нейшей детализации. Описание рабо­ты процессора можно представить в ви­де блок-схемы (рис. 4). Пункты, содер­жащие проверку какого-либо условия, изображают ромбами, расположенны­ми так, что одна из диагоналей их вер­тикальна. Из каждого ромба исходят 2 стрелки, одна из которых помечена циф­рой 0 (соответствует случаю, когда про­верка условия дает ответ «нет»), а дру­гая — цифрой 1 (соответствует случаю, когда проверка условия приводит к от­вету «да»). Этапы работы процессора, требующие выполнения определенных действий, изображены прямоугольниками, расположенны­ми на чертеже так, что одна из сторон каждого вертикаль­на. Из каждого прямоугольника может исходить только одна стрелка. Внутри блоков (ромбов и прямоугольников) записаны номера тех пунктов нашего описания, которым они соответствуют.



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

Схема рабочего цикла процессора должна быть уточнена. Для этого следует развернуть п. 4 рабочего цикла. При этом получим (рис. 5):

4. Если 0 означает некоторую операцию над данными, выполняется п. 5, иначе см. п. 9.

5. Если 9 означает одноместную[17] операцию, то см. п. 6, если двухместную, то см. п. 7.

6. Операция, соответствующая 0, выполняется над zi, результат записывается в zh. Далее см. п. 8.

7. Операция, соответствующая 6, выполняется над zi и zj. Результат записывается в zh. Далее см. п. 8.

8. Если результат операции отрицателен, в ячейку ω (логическую) записывается цифра 1, в остальных случаях (если он неотрицателен) — цифра 0. Далее см. п. 20.

9. Если θ означает операцию перехода, то выполняет­ся п. 10, иначе см. п. 14.

10. Если θ означает операцию условного перехода[18], то выполняется п. 11, иначе (если — безусловного перехода) выполняется п. 13.

11. Если ω=0, то см. п. 12, иначе (если ω = 1) см. п. 13.

12. В ячейку l записывается код, одинаковый с кодом, находящимся в ячейке i. Далее см. п. 20.

13. В ячейку l заносится код, одинаковый с кодом, на­ходящимся в ячейке j. Далее см. п. 20.

14. Если θ означает операцию останова, то см. п. 15, иначе см. п. 16.

15. Производится запись числа 0 в ячейку t. Далее см. п. 20.

16. Если θ означает операцию контакта, то выполняет­ся п. 17. Иначе (если θ означает операцию обмена) выпол­няется п. 18.

17. Производится соответствующая θ операция контак­та. Далее см. п. 20.

18. Производится соответствующая θ операция обмена. Далее см. п. 20.

Из приведенной детализации п. 4 мы видим, что среди операций, которые может выполнять центральный процес­сор, содержатся следующие группы: 1) операции над дан­ными; 2) операции перехода (условного и безусловного); 3) операция останова; 4) операции контакта; 5) операции обмена.

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

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

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

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

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

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

Процессор, представляющий собой устройство ввода с перфокарт, имеет свои систему запоминающих устройств, устройство управления и операционное устройство (рис. 6).

Его главным запоминающим устройством является ко­лода перфокарт. Операции, которые выполняет этот про­цессор,— это операции обмена: перенос информации с пер­фокарт в ячейки буферной памяти. Кроме ЗУ на перфокар­тах и буферной памяти, этот процессор имеет ячейку пус­ка-останова и, которая может хранить в себе 0 или 1, счетчик перенесенных кодов U и счетчик буферной па­мяти s.

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

Работа процессора ввода заключается в следующем.

1. Если значение и равно единице, то см. п. 2, иначе снова выполняется п. 1.

2. Величина s увеличивается на 1, а величина U уменьшается на 1. Далее см. п. 3.

3. Очередной код с перфокарт переносится в ячейку ws . Далее см. п. 4.

4. Если U=0, то выполняется п. 5, иначе выполняет­ся п. 1.

5. В ячейку и производится запись нуля. Далее см. п. 1.

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

Ячейки и, U, s являются контактными с тем процессо­ром, который может получить информацию из буферной памяти.

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

Что такое программа

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

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

Программы сперва составляют на бумаге и, естествен­но, что в таком виде они существенно отличаются от про­грамм, находящихся в ЗУ процессора. Итак, сперва бу­дем говорить о программах, написанных на бумаге.

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

Тогда командой назовем строку, содержащую код опе­рации и три адреса[19], разделенные пробелами. При этом условимся в каждой команде эти элементы располагать так: сперва код операции, потом первый, второй и третий ад­реса.

Примерами команд могут служить:

01 2425 3274 6153

34 2601 0000 0001

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

В табл. 4 команда с кодом 13 фактически означает: от процессора ввода с перфокарт через буферную память по­лучить п чисел. Аналогично команда с кодом 11 означает: ввести в буферную память процессора печати п чисел и заслать соответствующую информацию в его контактные ячейки. Команда с кодом 12 требует выполнения лишь первой части того, что требует команда «13»; ввода п чи­сел с перфокарт в буферную память. Их можно перенести в собственную память программного процессора оттуда по команде «14». Операции «12» и «13» и соответствующие ви­ды команд введены для того, чтобы в тех случаях, когда это допускает решаемая задача, программный процессор, затребовав числа с перфокарт, не ожидал конца работы процессора ввода, а продолжал выполнение программы.

Последние четыре вида команд предусматривают кон­такт (с другими процессорами) и обмен информацией (с ни­ми). Процесс выполнения таких команд будет разъяснен несколько позже (в §4).

Приказом будем называть строку, составленную из ад­реса, скобки и команды, записанных в том порядке, в котором они перечислены. Например, приказом является

3361) 02 0001 0003 0235

Вид команды Код операции Описание действий, предписываемых командой
i j k вычислить zi+zj и записать в zk
i j k вычислить zi-zj и записать в zk
i j k вычислить zi*zj и записать в zk
i j k вычислить zi:zj и записать в zk
i k вычислить и записать в zk
i k число zi записать в ячейке zk
i j условный переход к команде zi, если ω=0, и к команде zi, если ω=1
j переход к команде zj
останов процессора: запись числа 0 в ячейку t
i n n чисел zi, zi+1, …, zi+n-1 выдать на печать
n n чисел ввести в буферную память с перфокарт
n k n чисел ввести с перфокарт и записать их в ячейки zk, zk+1, …, zk+n-1
n k n чисел из буферной памяти перенести в ячейки zk, zk+1, …, zk+n-1
Θ i j k 15≤θ≤99 и θ=10 или θ=00 останов процессора: запись числа 0 в ячейку t

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

Любой столбец приказов, если хотя бы один из них имеет собственный адрес 0001, будем называть программой, написанной на бумаге.

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

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

Предположим, что нужно составить программу решения произвольного квадратного уравнения

ax2+bx+c=0 (а≠0),

если заданы числа а, b, с. Формула решения этого уравне­ния имеет вид

.

Корни уравнения могут оказаться действительными или комплексными. В первом случае будем печатать каждый из них; во втором случае это неудобно, так как . Тогда, очевидно, достаточно напечатать только α и β. Но как, глядя на два напечатанных числа, узнать, являются ли они числами х1 и х2 или числами αи β? Для того чтобы можно было это узнать, условимся предпосылать им третье число, которое должно быть равно 2, если корни действи­тельные, и 4, если они комплексные.

Алгоритм решения нашей задачи можно записать в сле­дующем виде.

1. Ввести в машину числа[20] а, b, с, z=2, y=0 и перейти к п. 2.

2. Вычислить величины 2а, b2—4ас, —b. Обозначить их соответственно е, d, g и перейти к п. 3.

3. Если d≥0, перейти к п. 4, иначе перейти к п. 5.

4. Вычислить , и обозначить их соответственно x1 и х2. Перейти к п. 6.

5. Вычислить числа g:e, , обозначить их[21] соответственно x1 и х2. Умножить z само на себя и резуль­тат (он равен 4) обозначить через z. Перейти к п. 6.

6. Печатать числа z, х1, х2. Конец.

Составляя приведенный алгоритм, мы уже заранее учи­тывали порядок действий в программе, чего, может быть, читатель еще не умеет. Программу, соответствующую этому алгоритму, можно написать так: 0001) 123 0000 0005 0101

Этот приказ значит: ввести 5 чисел и записать их в ячейки оперативной памяти с номерами 101, 102, 103, 104, 105. Первые три число — это a, b, c, а последние — это z=2, y=0.

Выполняя приказы

0002) 03 0102 0102 0110

0003) 03 0101 0104 0111

0004) 03 0104 0111 0112

0005) 03 0112 0103 0112

0006) 02 0105 0102 0110

0007) 02 0110 0112 0112

последовательно получим

в ячейке №0110 число b2;

в ячейке №0111 число 2а;

в ячейке №0112 число 4a;

в ячейке №0112 число 4ac;

в ячейке №0110 число — b;

в ячейке №0112 число d=b2—4ас.

Эта группа приказов соответствует п. 2 алгоритма.

При выполнении последнего приказа в ячейке со ока­жется нуль, если d≥0, и единица, если d<0. Поэтому п. 3 алгоритма решения квадратного уравнения будет реализо­ван, если мы составим приказ условного перехода:

0008) 07 0009 0050 0000

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

0009) 05 0112 0000 0112

0010) 02 0110 0112 0113

0011) 01 0110 0112 0114

0012) 04 0013 0111 0201

0013) 04 0114 0111 0202

0014) 06 0104 0000 0200

Эта группа приказов соответствует п. 4 алгоритма ре­шения квадратного уравнения. В соответствии сними последовательно будет получено

в ячейке № 0112 число ;

в ячейке № 0113 число ;

в ячейке № 0114 число ;

в ячейке № 0201 число x1;

в ячейке № 0202 число х2;

в ячейке № 0200 число 2.

0015) 11 0200 0003 0000

0016) 09 0000 0000 0000

В силу этих приказов числа 2, Xi и х2 будут напечатаны. Затем процессор будет остановлен.

Теперь составим приказы, которые выполнялись бы в случае d<0, т. е. соответствующие п. 5 алгоритма решения квадратного уравнения. Первый из этих приказов имеет собственный адрес 0050.

Выполняя приказы

0050) 04 0110 0111 0201

0051) 02 0105 0112 0112

0052) 05 0112 0000 0112

0053) 04 0112 0111 0202

0054) 03 0104 0104 0200

0055) 08 0000 0015 0000

будем последовательно иметь

в ячейке № 0201 число (—b):(2а);

в ячейке № 0112 число —d;

в ячейке № 0112 число ;

в ячейке № 0202 число ;

в ячейке № 0200 число 4.

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

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

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

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

Иногда приходится слышать афоризм: «Машина без про­граммы — ничто. Машина с программой — все!» Очевидно, этот афоризм неверен. Действительно, чем отличается ма­шина без программы от машины с программой? Только со­стоянием некоторых своих элементов (именно тех, из кото­рых сделаны запоминающие устройства). Образно говоря, различие между машиной в первом и во втором случае та­кое же, как между винтовкой, заряженной и поставленной на предохранитель, и той же винтовкой, заряженной и взведенной. Функционирование винтовки, поставленной на предохранитель и взведенной при нажиме на спусковой крючок будет различным, хотя физически винтовка в обоих случаях одна и та же.

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

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

Особенности современных ЭВМ

В § 2 командам контакта и обмена посвящены пп. 16, 17, 18 описания работы центрального процессора. Детали­зируем эти пункты. Число операций контакта и обмена зависит от количества процессоров, с которыми связан дан­ный процессор, и от особенностей контактирующихся про­цессоров. Мы, для пояснения сущности контакта и обмена, ограничимся рассмотрением этих процессоров в случае свя­зи центрального процессора и процессора ввода.

Итак, предположим, что 6 представляет собой опера­цию контакта. Такой контакт в описываемом (упрощенном) случае может преследовать только одну цель — ввод инфор­мации (у нас — с перфокарт). Мы имеем три операции кон­такта и обмена (см. систему команд в табл. 4): θ=12— операция контакта, θ = 13 — операция контакта и обмена, θ = 14— только обмена. Детализацию выполнения этих операций получим, если вместо пп. 16—18, приведенных

в §2, напишем:

16. Если u=0, то перейти к п. 17, иначе вернуться к вы­полнению п. 16 (т. е. ждать конца работы процессора ввода).

17. В ячейку U записать число из ячейки j, а в ячейку s записать нуль. Перейти к п. 18.

18. Если θ = 14, то см. п. 23, иначе см. п. 19.

19. В ячейку и производится запись числа 1. Далее

см. п. 21.

21. Если θ = 13, то см. п. 20, иначе перейти к п. 22.

22. Если u≠1(т. е. процессор ввода не работает), то см. п. 23, иначе снова перейти к п. 22 (т. е. ждать конца работы процессора ввода).

23. В ячейку zk записать число из ячейки ws+1, значение k увеличить на 1, значение s увеличить на 1, см. п. 24.

24. Если s≠U, то вернуться к п. 23, иначе см. п. 20. Блок-схема этой части алгоритма показана на рис. 7.

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

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

Современная ЭВМ, как уже было сказано в § 1, — это система взаимосвязанных процессоров. Связь между про­цессорами осуществляется с помощью буферных и контакт­ных ЗУ.

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

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

Условимся процессор изображать в виде прямоугольного блока с поясняющей записью внутри, контактные и буферные ЗУ изображать кружочками. Каналы будем изображать двойными линиями (при этом пометка цифрой 1 будет говорить о том, что канал мультиплексный, а пометка цифрой 2 - о том, что он селекторный). Принадлежность контакт­ного и буферного ЗУ процессору будем изображать, соеди­няя изображающие их блоки одинаковыми линиями. Та же архитектура, которая показана на рис. 8, но с новыми обозначениями, приведена на рис. 9.

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

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

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

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

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

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

Таким образом, выполнение основной программы ока­зывается прерванным, и начинает работать вспомогательная программа. Отсюда происходит название описанного про­цесса «прерывание».

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

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

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

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

1. Содержимое ячейки t сравнивается с 1. Если оно со­впадает с 1, то выполняется п.2°, иначе (если оно совпадает с 0) снова выполняется п. 1.

2°. Над кодами р и т производится операция пораз­рядного умножения. Если результат совпадает с 0, то см. п. 2, иначе (если не совпадает) см. п. 3°.

2. Содержимое ячейки zl переносится из оперативной памяти в регистр команд r. Далее выполняется п. 3.

3. Содержимое ячейки l увеличи­вается на единицу. Далее выполняет­ся п. 4.

4. Выполняется операция, кото­рая указана в ячейке 9. Далее см.

п. 20.

3°. Содержимое ячеек l, ω, t, p записывается соответственно в ячей­ках l', ω', t', p'. Далее содержимое ячеек U, ωо, t0 записывается соответ­ственно в ячейках l, ω, t. В ячейку р производится запись нуля. Далее см. п. 2.

20. Далее выполняется п. 1.

Блок-схема видоизмененного ра­бочего цикла упрощенного централь­ного процессора приведена на рис. 11 (ср. с рис. 4).


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

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

Большой интерес представляют также ЭВМ, содержа­щие в своем составе несколько центральных проц


prodolnij-i-poperechnij-parallaksi.html
prodolno-emkostnaya-kompensaciya.html
    PR.RU™