Квант

56

Как работает процессор

Архитектура ЭВМ

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

На упрощенной блок-схеме (рис. 1) представлены следующие устройства, составляющие ЭВМ:

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

— Памяты (П) (или запоминающее устройство — см. «Квант», 1980, № 4) хранит данные, а также информацию, управляющего всеми работами в ЭВМ, т. е. программу.

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

— Устройство управления (УУ) координирует работу ЭВМ в целом и ведет «дипломатей» взаимношенной между отдельными устройствами.

Арифметические и логические операции выполняются в АЛУ с высокой скоростью, исчисляемой в современных ЭВМ от сотен тысяч до десятиков миллионов операций в секунду. Для обеспечения высокой скорости работы машинны в целом, процессы, связанные с передачей информации между устройствами — смена данных, получение нового задания, запись результата — полностую автоматизированы; этим и управляет УУ. Устройство управления — своеобразный директор ансамбля устройств, составляющих ЭВМ. «Нотной партитурой» директору служит программа, предварительно записанная в памяты. Каждый такт пьеся, разыгрываемой под руководством УУ, является законченым элементарным действием: сложение двух чисел, сравнение двух величины и т. д. Именно УУ «настра-

57

Ивает》АЛУ на выполнение конкретной операции, «заботится» о том, чтобы из памяти была извлечена информация, необходимая для этой операции, не «забывает» по окончании действия записать результат в память либо переслать в распоряжение УВВ.

В семействе устройств, составляющих ЭВМ, наиболее техническими сложными оказывается относительная память УУ и АЛУ. Дело в том, что УУ не только «настраивает» АЛУ на выполнение определенной операции, например сравнение двух величины, но и «интересует» результатом, в зависимости от значения этого результата принята решение о дальнейшем хождение выполнения программы. Взаимоотношения АЛУ и УУ называют процессом.

Логическое организацию машины называют арихитектурой. Представлена на рисунке 1 арихитектура считается классической. Она предположена в 1947 году американским ученым Фон Нейманом и содержит в себе основные черты современных арихитектурных решений ЭВМ.

Что такое управляющая информация?

В первом приближении работы ЭВМ можно представить так:

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

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

— после того как устройства выполняют порученную им работу, они сообщают об этом УУ; тогда либо из памяти будет извлечено следующие управляющие слова, либо две

Рис. 2. Примерный формат трехадресной команды.

Женнее информационные потоков в ЭВМ будет приостановлено.

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

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

Команда чаще всего составляется из нескольких компонент (рис. 2).

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

— адресную часть, включая данные, над которым надо произвести операцию, и адрес результата;

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

Из чего состоит устройство машины?

Различные устройства машины представляют собой комбинации большого числа элементов — «кирпичков». Разнообразие элементов, однake, нестоль велико. Поэтому для более подробного знакомства с работой устройств ЭВМ необходимо узнать причины действия этих элементов. Расматривая устройство памяти («Квант», 1980, № 4), читатель, по-

58

видаимому, обратил внимание на дискретирую природу хранимой в машине информации: в конечном итоге все свойства к двум состоянием, именуемым 0 и 1. Различные конструкции элементов могут давать лишь разные технические реализации, гарантирующие распознавание двух таких состояний. Например, два уровня напряжения — «высокий» и «низкий» — могут распознавать электронными схемами так, что «высокое» означает единицу, а «низкое» — нуль.

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

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

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

— схема совпадения («и») — сигнал, соответствующий значению «1», появится на выходе схемы «и» только тогда, когда значение всех входных сигналов будет соответствовать значению «1» (рис. 3a);

— схема сборки («или») — эта схема менее «приведлива» к характеристим входной информации: значение «1» появляется на ее выходе каждой раз, когда хотя на одном входе появится значение «1» (рис. 36);

— схема инвертора («не») вырабатывает на выходе значение, противоположное входному. Получаемое

59

Рис. 4a. Выборка команд. Рис. 46. Дешифрация кода операции. Рис. 4в. Пересылака 1-го слагаемого в АЛУ.

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

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

— сумматор — сердце АЛУ; сумматор получает на входы двойные представления двух чисел и выдает на выходе двойное представление их суммы;

— шифратор — преобразует сигнал на одном из своих входов в соответствующий набор сигналов на выходе (например, в код операции);

— дешифратор — выполняет функцию, обратную действием шифратора, то есть на каждую входную комбинацию сигналов выдает сигнал только на одну выходную линию; дешифратор используется, например,

в УУ для расшифровки кода операции команды;

— счетчик — считает число дискретных сигналов, которые появляются на его входе; счетчик, как и регистр, состоит из конечного числа триггеров.

Процессор выполняет команду

Процессы, производящие в машине при отработке команд, илистрируются рисунками 4a—4e. Это своеобразные стоп-кадры события, сложет которого — отработка одной команды. Процессы, как это видно по «чаасам», фигурируют на каждом рисуке, протекают во времени. Высокая общая скорость работы ЭВМ потребовала жесткой регламентации времени на каждый информационный обмен в отдельности. Метрономом машины, ее внутренними «чаасами», служит так называемый генератор тактовой частицы.

Перед началом работы оператор ЭВМ подготовливает с пульта стартовую информацию — адрес команды, исполнитель в данной программе самой первой. Приказ «пуск», который оператор дает машине, относится прежде всего к УУ (рис. 4a). Далее события развертываются следующим образом:

— прежде всего в специальный счетчик команд (СК) попадает ад-

60

рес первой выполняемой команды программы; тем самым определяется место в памятии, откуда можно извлечь обработываемую команду;
— получив приказ о начале работы, УУ передает в память в качестве адреса разыскиваемой информации содержимое счетчика команд;
— эта передача сопровождается приказом для памятии «выдать содержимое указанной ячейки на регистр команд»;
— после этого из ячейки памятии с адресом, равным содержимому СК, считывает команда, размещается в резистре команд (PK);
— УУ с помощью дешифратора расшифровывает код операции команды и, настраивая АЛУ на выполнение операции (в нашем примере — «сложить два числа», начинает отработку алгоритма команды (рис. 46));
— адрес первого слагаемого (первый адрес в адресной части команды, расположенной в PK) передается в ЗУ; УУ требуется выдать содержимое этого адреса в АЛУ; перевалочных пунктом в этой передаче служит резистр считываемой информации (РСИ) (рис. 4в);
— после того как АЛУ примет содержимое РСИ в качестве первого слагаемого, УУ начинает выборку следующого слагаемого. Для этого в память будет передан номер ячейки, хранящей второе слагаемое (второй адрес в адресной части команды из РК), и содержимое этой ячейки будет передано через РСИ в АЛУ (рис. 4г);
— получив оба слагаемых, АЛУ с помощью сумматора выполняет операцию сложения и передает результат в резистр записываемой информации (РЗИ) (рис. 4д);
— финалом отработки команды является запись содержимого РЗИ (результата) по адресу результата (третий адрес в адресной части команды в РК) (рис. 4e).

Как определяется порядок выполнения команд?

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

61

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

Почему нужны прерывания в ходе выполнения программы?

Кроме того преднамеренного способа изменения последовательности команд, который вооружают программы команды безусловного и условного переходов, существует «аппаратные» (внутренние машинные) способы изменения обычной последовательности, которые позволяют по некоторым важным и чрезвычайным принципам прерывать выполнение программы и начать выполнение другой программы. При появлении принципы, вызваншей прерывание, прежде всего изменяется содержимое счетчика команд: на него поступает адрес прерывания. Дело в том, что обычно для каждой класса принцип отводится «свой» фиксированный адрес; его обычно «находят» с помощью шифратора. Вфиксированных адресах прерывания содержится команды перехода на подпрограмму (обработки соответствующего прерывания). Эти команды — «ближайте родственники» уже известной команды безусловного перехода. Замечательный союз программы и аппаратных средств, предназначенных для быстрый реакции машины на чрезвычайные события, называют системой прерывания. Действия этого союза направлены на то, чтобы «сфотографировать» события, происходит в ЭВМ в момент возникновения прерывания. «Фотография» помогает восстановить работу машины в режиме последовательности после того, как принцип прерывания будет удовлетворены или ликвидированы. Те-

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

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

Все ли так просто?

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