Квант

16

КТО УПРАВЛЯЕТ ГОРОДОМ МК?

(Путешествие по микрокомпьютеру)

Кандидат технический наук Д. Г. КРУТОГИН

Сегодня нам предстоит посетить архитектурный центр нашего города и одновременно главный производственный район — короче говоря, микропроцессор. Неслучайно мы открывали этот видит, неслучайно ходили вокруг да около. Сложен для анализа микропроцессор, как сложен архитектурный шедевр. И расскаазать о нем не так просто. Можно бы опять нарисовать план, перечислить детали МП, взаимодействие их в работе, но мы сделаем это позже. А научем с того, что построим в своей воображении простейший микропроцессор (ПМП) из самых необходимых блоков. Если он сможет «работать» (там же, в воображении), то, наверное, его нетрудно будет и немного усложнить, чтобы приближаться к реальной архитектуре и реальным функциям МП.

16

17

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

Самый главный работник

АЛУ — это многоразрядный (8, 16, а иногда и больше) набор сумматоров, способный в зависимости от импульсов управления перестраивать с арифметических на логических действия или наборот. О работе однозначного сумматора «Кваант» расскажаал в прошлом году (см. майский номер). А на рисунке 1 можно видеть четырехразрядное (совсем простое) АЛУ. По проводам шины данных на входы A0A_0 — A3A_3 и B0B_0 — B3B_3 поступают разрядно операнды AA и BB, с выходов F0F_0 — F3F_3 разрядно выходят результаты, входы S0S_0 — S3S_3 служат для управления АЛУ, переключают его на те или иные операции (сложение, вычитание, отрицание и т. п.).

Глядя на рисунок 1, представьте себе большой лабиринт с прямогольными переходами. В нем есть восемь входов и четыре выхода; но, в отличие от обычных лабиринтов, в этом лабиринте неко («имя» этого неко УФК, и познакомимся мы с ним немного позднее) то и дело передвигает стены, меняя конфигурации проходов. В результате АЛУ при разных сигналах управления произведет разные действия с одинаковыми операндами, а на выходе будут разные ответы.

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

Откуда же берется операды? Объчно из районов ОЗУ или ПЗУ. Но вызывать их оттуда, как правило, можно только по очереди, например, сначала AA, потом BB. Значит, пока ПМП ожидает появления BB, операнд AA должен где-то немного подождать. Ближайшей «приемной» служит специальный регистра памяти, называемый аккумулятором. В нем столкко же разрядов, сколько в АЛУ. Аккумулятор не только подает один операнд в АЛУ, он же принимает в себя и результат операции — слово FF. Потом аккумулятор переправит это слово в ОЗУ или в какой-то другой регистр памяти внутри процесса, но сначала важно повернуть дело!

Следующий важный момент — управление. Мы уже отметили, что АЛУ нужно управлять, задавать ему порядок работы. Значит нашему ПМП нужны соответствующие органы управления. (Вот как повернуть дело! Раньше мы отмеали, что всем управляет процессор, а им, оказывается, тоже кто-то управляет.)

«Процессор» для процесса

Устройство управления и формирования команд (обозначим его УФК)

Рис. 1. Схематическое изображение связи четырехразрядного АЛУ. С — указатель сбывания сdbила и перемена разрядов. М — переключатель «аррифметика — логика».

18

занимает в районе ПМП приложый по размерам микропаон. Задча этого микропаон: получить очередную команду из текста программы и расшифровать ее до уровня простейших импульсов, подаваемых на входы SiS_i и MM арфметикo-логическая устройства.

В основном микропаон УФК застроен логическими устройствами, которые называются дешифраторами. Они и впрямь наполняют шфровальные карты, отверстия которых из самого случаяного текста выбирают несколько букв секретного donneся. А роль ответный выполнять разные варианты подключения элементов дешифратора к шине, несущей текст команды. Хотя элементы застроки типовые — это логические элементы *) И — НЕ, ИЛИ — НЕ, но причудливая их архитектура позволяет реализовать несколько десятиков комбинаций, обеспечивающих управление ПМП. Системы УФК управляют не только АЛУ, но и аккумулятором и других районами МК. Один из квартолов УФК специализирован на обслуживания систем ввода и вывода, он же управляет буферами соответствующих шин в периоды контакта с внешними устройствами. До сотни каналов управления выходит из района УФК.

Следующий вопрос — откуда УФК получает команду для расшифровки? Разумеется, из ЗУ (откуда приходят и операды). Но на время расшифровки, формирования микрокоманд и их использования прибывая из памяти команда должна располагаться рядом с УФК (быть под рукой), т. е. в специальном регистре памяти — регистре команда (PK). В PK столко же разрядов, сколько в АЛУ и аккумуляторе.

Ясно, что аккумулятор и PK — ближайшая, сверхоперативная память процессора.

Было бы неплохо, если бы внимательный читатель нарисовал сейчас блок-схему описанной выше части ПМП. Два прямогоЛЬНИКА, один другим, нужно соединить узким коридором, в котором стоит двумя направлениями стрелка — это АЛУ и аккумулятор (A). Ниже расположится прямогоЛЬник чуть большого размера — УФК, стрелки от него идут в АЛУ и аккумулятор. Справа расположите квадратик PK, стрелки от него направлены к блоку УФК. Теперь над аккумулятором нарисuite маленький, но важный квадратик — буфер (Б), а затем к буферу и регистру команда подведите справа шину данных (для этого на ней придется сделать развилку). Буфер Б (мы раньше сравнили его с постом ГАИ) может пропускать данные от памяти (ОЗУ) в процессе, в другом состоянии — наоборот — от процесса к ОЗУ. Но есть у него и треtte состояние, когда он вообществаются от обмена данных, как бы «смотрит в него». В такое состояние буфер «выдает» (конечно, по сигналу УФК!) в то время, когда по шине данных поступает слово-команда. В результате команда оказывается в регистре команда, но никак не в АЛУ. Если теперь вспомнить, что команда и «поселены» были в ОЗУ отдельно от операдов, и вызываются так, чтобы не попасть в арфметико-логическое устройство, станет понятно, как ЭВМ разбиается в командах. Чуть позже мы проверим правильность вашего рисунка, а теперь вернемся к командам. Вот такой вопрос — кто и когда вызывает очередную команду? Эту обязанность выполнять еще один регистр памяти, который называют программимом счетчиком, или счетчиком команд (СК).

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

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

20

Логические схемы дешфратора в УФК и буферных схемах шин.

Внутренние шины связи между отделными элементами процессора.

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

Но давайте взглянем на микропроцессор не с архитектурой, а с функциональной точки зрения. Что делает он в микроЭВМ, что делает процессор в больших ЭВМ? Для чего вообще nueжен процессор?

Робот-лифтер

В январском номере «Кванта» за прошленный год в статье «Элементарные логические операции» был рассмотрен пример управления лифтами: многоэтажный дом, один или несколько лифтов, на каждом этаже одна кнопка вызова. Лифтами управляет командный аппарат. В ответ на многообразие возможных задач-ситuation аппарат выдает одно из трех решений: вверх, вниз, стоп (если лифт два, то независимых решений 2×3=6). Решения приготовлены заранее и существуют в виде схемы электрических соединений общих выключателей или реле. Эти соединения можно описать логическими операциями (см. рисунок 4, а): если включена кнопка «э10» (этаж) ИЛИ «э9» (и т. д.) И (при этом!) включена кнопка «л12» (пустой лифт стоит на 12 этаже) И НЕ включена кнопка «стоп1» (перегруз!) И НЕ включена кнопка «стоп2» (открыты двери!), то решение задачи — ВНИЗ. А иначе — СТОП. Лифт при движении на контакты поставных выключателей, схема соединений меняется, и перед десятьм этажом включается НЕ «л10», т. е. СТОП (рисунок 4, б).

Таким образом, командаппарат запоминает и сравнивает командывызовы, операнды-текуще состояние, команды-запреты (они вообще превыше всех других!), а потом выдает команду-ответ. Каждая команда легко представима: 1 — кнопка нажата, 0 — кнопка отpuщена. Это прививный нам двойный код.

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

Рис. 3. Схема простейшего микропроцессора. Розовый плашкой выделена основная часть схемы, с которой мы начали «строительство».

21

Рис. 4. Логика управления лифтом.

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

Вместо заключения

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

ЧERO же мы не увидели в городе МК из того, что полагается увидеть экскурсантам? Нет здесь памятника основателем и первостроителям города. В предельной тестите и рациональности нашего города ему нет места. Но если бы он был, то на его вершине стопло бы ответы почетное место trem ученым: Майклу Фараденко — физик, первый отметивший особые свойства полупроводников, Чарльзу Бэббеджу — первому «архитектору» и строитель вычислительных машин, Джорджу Булю — математик, изобретатель алгебры логики — науки, на котором основана схемотехника ЭВМ. Эти три человека могли быть знакомы, либо жили в Англии примерно в одно время.

Второй ярус памятника должен быть вместе десяти крупных ученых: от Д. Менделеева и Н. Бора, Я. Френкеля и В. Шоттки до изобретателей трансистора — Дж. Бардина и У. Братейна.

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