Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Алгоритмы вокруг нас.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
13.11 Mб
Скачать

§ 2. Процессоры эвм. Рабочий цикл

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

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

При описании формата мы ограничимся лишь указа­нием составных частей, входящих в состав команды, ос­тавляя в стороне число символов. Будем считать, что каж­дая команда имеет формат, приведенный на рис. 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 являются контактными с тем процессо­ром, который может получить информацию из буферной памяти.

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