Классические основы построения ЭВМ. Цикл выполнения команды. Порядок проектирования комбинационных схем. Архитектура персонального компьютера. Основные режимы работы мультипрограммной ЭВМ. Особенности системы управления памятью и ввода-вывода информации.
Аннотация к работе
ОСНОВЫ ОРГАНИЗАЦИИ ВЫЧИСЛИТЕЛЬНЫХ МАШИН МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИIF (interrupt flag) - флаг разрешения аппаратных прерываний LIFO (Last In - Fist Out) - последний пришел - первый обслужен MR (memory read) - сигнал чтения из оперативной памяти MW (memory write) - сигнал записи в оперативную память NMI (no mask interrupt) - сигнал запроса немаскируемого trialвания Основы построения электронных вычислительных машин в их современном понимании были заложены в 30-е - 40-е годы прошлого века видными учеными: английским математиком Аланом Тьюрингом и американцем венгерского происхождения Джоном (Яношом) Нейманом. Хотя машина Тьюринга (МТ) не стала реально сtrialвующим устройством, она до настоящего времени постоянно используется в качестве основной модели для выяснения сущности таких понятий, как “вычислительный процесс”, “алгоритм”, а также для выяснения связи между алгоритмом и вычисли-trialыми машинами. Среди знаков имеется пустой знак (s1), посылка которого в какую-либо ячейку стирает находившийся в ней знак и оставляет ее пустой. В зависимости от поданной начальной информации ? (содержащихся на ленте знаков) возможны два случая: после конечного числа тактов машина останавливается (имея информацию ?), подавая сигнал об остановке.Для выполнения операции сложения операндов, находящихся по адресам a и b, с записью результата в ячейку c (c = a b) требуется одна команда такого формата: КОП А1 А2 А3 При этом подразумевается, что после выполнения любой команды, не меняющей в явном виде порядок выполнения программы, очередная команда выбирается из ячейки ЗУ, располагающейся сразу же вслед за ячейкой (или ячейками), содержащей код текущей команды. При четырехадресной системе кодирования команд (рис.1.6,г) первые три адреса выполняют те же функции, что и в трехадресной команде, а четвертый адрес указывает адрес ячейки, где хранится следующая выполняемая команда. Изменяя содержимое ячейки памяти или регистра, через которые осуществляется адресация, можно, не меняя команды в программе, обрабатывать операнды, хранящиеся по разным адресам. Для реализации этого этапа необходимо код со счетчика команд (СК) = k передать в ОЗУ, обратиться в ячейку ОЗУ с адресом k и содержимое этой ячейки, являющееся кодом этой команды, передать на регистр команд.Классическая ЭВМ состоит из трех основных устройств (см. рис.1.4): арифметико-логического устройства, устройства управления и запоминающего устройства. Для лучшего понимания этих вопросов проведем синтез арифметического устройства, предназначенного для выполнения только одной операции - умножения чисел с фиксированной запятой, заданных в прямом коде, со старших разрядов множителя [13]. Затем нужно определить связи между элементами, установить порядок функционирования устройства и временную диаграмму управляющих сигналов, которые должны быть поданы на АЛУ от устройства управления. Операция умножения чисел с фиксированной запятой, заданных в прямом коде, со старших разрядов множителя выполняется по следующей формуле: Sign Z = Sign X ? Sign Y Переход к анализу очередного разряда множителя (i = i 1) может быть обеспечен сдвигом регистра множителя на один разряд вправо.Устройство управления предназначено для выработки управляющих сигналов, под воздействием которых происходит преобразование информации в арифметико-логическом устройстве, а также операции по записи и чтения информации из запоминающего устройства. Функциональная схема схемного устройства управления датчика сигналов, вырабатывающего последовательность импульсов, равномерно распределенную во времени по своим шинам (рис.3.5) (n - общее количество управляющих сигналов, необходимых для выполнения любой операции; m - количество тактов, за которое выполняется самая длинная операция); дешифратора кода операций, который дешифрирует код операции команды, присутствующей в данный момент в регистре команд, и возбуждает одну шину, соответствующую данной операции; этот сигнал используется блоком управления операциями для выработки нужной последовательности управляющих сигналов. Датчик сигналов на основе счетчика с дешифратором Реализация датчика сигналов на основе счетчика с дешифратором представлена на рис.3.6. Датчик сигналов на сдвиговом регистре Проектирование датчика сигналов на сдвиговом регистре требует лишь его "закольцовывания", то есть соединения выхода последнего разряда с входом, через который в регистр заносится информация при сдвиге, и первоначальной установки (рис.3.8).Термин "запоминающее устройство" обычно используется, когда речь идет о принципе построения некоторого устройства памяти (например, полупроводниковое ЗУ, ЗУ на жестком магнитном диске и т.п.), а термин "память" - когда хотят подчеркнуть выполняемую устройством памяти логическую функцию или место расположения в составе оборудования ЭВМ (например, оперативная память - ОП, внешняя память и т.п.).
План
СОДЕРЖАНИЕ
Список условных обозначений................................................. 1. Структура однопрограммной ЭВМ...................................... 1.1. Классические основы построения ЭВМ....................... 1.2. Архитектура классической ЭВМ.................................. 1.3. Цикл выполнения команды...........................................
2. Основы схемотехнической реализации ЭВМ...................... 2.1. Системы логических элементов......................trial......... 2.2. Порядок проектирования комбинационных схем....... 2.3. Основные функциональные элементы ЭВМ ..............
3. Устройства компьютера......................................................... 3.1. Арифметико-логическое устройство............................ 3.2. Устройство управления ................................................. 3.3. Запоминающие устройства ...........................................
4. Архитектура персонального компьютера............................ 4.1. Структура 16-разрядного микропроцессора................ 4.2. Режимы адресации и форматы команд
16-разрядного микропроцессора.......................................... 4.3. Взаимодействие основных узлов и устройств персонального компьютера при автоматическом выполнении команды.................................................................................. 4.4. Архитектура 32-разрядного микропроцессора............ 4.5. Конвейерная организация работы процессора............
5. Организация работы мультипрограммных ЭВМ ................ 5.1. Основные характеристики мультипрограммного режима работы ЭВМ................................................................. 5.2. Дисциплины распределения ресурсов.......................... 5.3. Основные режимы работы мультипрограммной ЭВМ........................................................................................ 5.4. Система прерываний...................................................... 5.5. Система управления памятью....................................... 5.6. Защита памяти в мультипрограммных ЭВМ............... 5.7. Ввод-вывод информации............................................... Литература ..................................................................................
Вывод
Арифметико-логическое устройство trialинающее
Управляющие сигналы
Признаки результата устройство
Устройство управления
Управляющие сигналы
Адреса команд и данных
Команда
Рис.1.4. Структура классической ЭВМ 11
Адрес ячейки ЗУ
N Код N N-1 Код N-1
1 Код 1 0 Код 0
Ячейка
Рис.1.5. Структура запоминающего устройства
Устройство управления формирует адрес команды, которая должна быть выполнена в данном цикле, и выдает управляющий сигнал на чтение содержимого соответствующей ячейки запоминающего устройства. Считанная команда передается в УУ. По информации, содержащейся в адресных полях команды, УУ формирует адреса операндов и управляющие сигналы для их чтения из ЗУ и передачи в арифметико-логическое устройство. После считывания операндов устройство управления по коду операции, содержащемуся в команде, выдает в АЛУ сигналы на выполнение операции. Полученный результат записывается в ЗУ по адресу приемника результата под управлением сигналов записи. Признаки результата (знак, наличие переполнения, признак нуля и так далее) поступают в устройство управления, где записываются в специальный регистр признаков. Эта информация может использоваться при выполнении следующих команд программы, например команд условного перехода.
Система кодирования команд
Запись любой команды определяется ее форматом. Формат команды - это структура команды, позволяющая распознать назначение отдельных ее полей.
Исходя из определения, команда должна содержать информацию о выполняемой операции, адресах операндов и адресе ячейки
12
ЗУ для записи результата. Этому в наибольшей степени соответствует формат команды, содержащий поле кода операции и три адресных поля. Такая система кодирования команд называется трехадресной (рис.1.6,в).
КОП А1 nko NA nkom
1 а) одноадресная
КОП А1 А2 nko NA1 NA 2 ком n б) двухадресная
КОП А1 А2 А3 nko NA1 NA 2 NA 3 в) трехадресная ком n
КОП А1 А2 А3 А4 nko NA1 NA 2 nkom NA 3 NA 3 г) четырехадресная
Рис.1.6. Системы кодирования команд
Схема выполнения трехадресной команды имеет вид: (А1)*(А2) ? А3.
Здесь (А1) и (А2) - адреса ячеек ЗУ, в которых хранятся первый и второй операнды соответственно; * - знак обобщенной операции (например, сложение или умножение), задаваемой полем кода операции (КОП). Знак ? обозначает передачу результата операции в ячейку памяти с адресом А3.
13
Для выполнения операции сложения операндов, находящихся по адресам a и b, с записью результата в ячейку c (c = a b) требуется одна команда такого формата: КОП А1 А2 А3
ADD a b c
Здесь ADD - код операции сложения.
Формат двухадресной команды представлен на рис.1.6,б. Выполнение операции с помощью такой команды проходит по следующей схеме: (А1) * (А2) ? А1 или (А1) * (А2) ? А2.
Выполнение того же самого действия c = a b в двухадресной системе кодирования команд потребует уже двух команд, например: КОП А1 А2
ADD a b a = a b
MOV c a c = a Одноадресная команда имеет формат, приведенный на рис.1.6,а. Обычно ЭВМ с одноадресной системой команд имеют особую структуру, в состав которой входит специальный регистр (регистр результата - РР). Он служит для хранения результата операции и используется в качестве одного из операндов при выполнении операции (рис.1.7).
(A1)
АЛУ
РР
Рис.1.7. Схема выполнения операции в ЭВМ с одноадресной системой команд
14
Схема выполнения операции на ЭВМ с одноадресной системой команд имеет вид: (А) * (РР) ? А или (А) * (РР) ? РР.
Операцию c = a b в одноадресной системе команд можно выполнить следующим образом: КОП А1
MOVR a РР = a ADD b РР = РР b
MOVS c c = РР
Рассмотренные форматы команд используются при так называемом естественном порядке выполнения программы. При этом подразумевается, что после выполнения любой команды, не меняющей в явном виде порядок выполнения программы, очередная команда выбирается из ячейки ЗУ, располагающейся сразу же вслед за ячейкой (или ячейками), содержащей код текущей команды. При четырехадресной системе кодирования команд (рис.1.6,г) первые три адреса выполняют те же функции, что и в трехадресной команде, а четвертый адрес указывает адрес ячейки, где хранится следующая выполняемая команда. Такая система обеспечивает принудительный порядок выполнения команд программы. Она хотя и повышает гибкость программирования, но практического применения не получила. Основной причиной этого является существенное увеличение размера каждой команды и, соответственно, увеличение объема ЗУ, необходимого для размещения программы, в то время как реальной потребности в такой кодировке каждой команды не существует.
Несколько особое положение занимают безадресные команды. Они используются в компьютерах, имеющих стековую организацию памяти. Обращение к ячейкам такой памяти производится последовательно с помощью специального указателя стека (УС), 15 определяющего рабочую в данный момент ячейку. Каждая ячейка снабжена тэгом - специальным признаком хранимой информации. Такая ЭВМ имеет структуру, представленную на рис.1.8. В ее состав помимо АЛУ входят два специальных буферных регистра РР1 и РР2. Здесь значение тэгов следующее: Op - в данной ячейке хранится операнд, C - признак наличия в ячейке кода операции.
Проиллюстрируем работу такой ЭВМ на примере вычисления выражения ((a b) * c - d) / e.
На первых двух тактах работы из памяти извлекаются операнды a и b и помещаются в рабочие регистры РР1 и РР2. Считав следующую ячейку стековой памяти, устройство управления по ее тэгу определяет, что данная информация представляет собой код операции. Поэтому он направляется в АЛУ, где и проводится сложение хранящихся в регистрах операндов с записью результата в один из рабочих регистров. Так как в следующей ячейке хранится операнд, то он направляется в РР, свободный от записанного результата. После этого производится выполнение следующей операции и так далее.
Стековое ЗУ
УС a Op b Op C c Op * C d Op - C e Op
/ C информация тэг
Операнды
РР1 РР2
Операция АЛУ
Рис.1.8. Схема выполнения операции в ЭВМ с безадресной системой команд
Такая структура ЭВМ обеспечивает высокое быстродействие, но требует весьма сложного программирования.
Важной характеристикой команды служит ее длина, которая складывается из длины поля кода операции и суммы длин адрес-
16 ных полей: nkom = NКОП ? i?1 n nадр i ,
где n - количество адресных полей в команде.
Максимальное количество операций, которое может быть закодировано в поле кода операций длиной nкоп , составляет
NКОП max
2
K =
Тогда по известному количеству команд (K), составляющих систему команд данной ЭВМ, можно определить необходимую длину поля операции: NКОП ? log2K.
Естественно, что эта величина должна быть минимально возможным целым числом. Так для ЭВМ, имеющей систему команд из 100 команд, длина поля кода операции составит 7 бит.
Если поле адреса команды содержит просто номер ячейки ЗУ, к которой производится обращение, то длина этого поля определяется следующим образом: nадр ? log2 VЗУ, где VЗУ - объем запоминающего устройства.
Правомерна и другая постановка задачи - определение максимального объема запоминающего устройства (VЗУMAX), к которому можно обратиться при заданной длине поля адреса. В этом случае
VЗУMAX = 2 nадр .
Современные ЭВМ имеют, как правило, запоминающие устройства с минимальной адресуемой единицей 1 байт (1 байт = 8 бит). Поэтому, например, адресация ЗУ объемом 1 мегабайт (1М байт = 220 байт) требует 20 разрядов адресного поля, а поле адреса длиной 16 разрядов позволяет обращаться к памяти максимального объема 64 килобайта (1К байт = 210 байт).
Одним из способов уменьшения длины поля адреса является введение в состав ЭВМ дополнительно специального блока памяти небольшого объема - регистровой памяти (РП). Это запоминающее устройство служит для хранения промежуточных результатов вы-
17 числений, счетчиков циклов, составляющих адреса при некоторых режимах адресации и других целей. Так как объем РП невелик, адресация ее элементов требует относительно короткого адресного поля. Например, для регистровой памяти объемом 8 регистров требуется всего лишь трехразрядное адресное поле.
Способы адресации
Решить проблему сокращения разрядности команды только за счет сокращения количества указываемых в команде операндов и применения регистровой памяти невозможно. Этой же цели служит использование различных способов адресации операндов. Кроме того, применение нескольких способов адресации повышает гибкость программирования, так как в каждом конкретном случае позволяет обеспечить наиболее рациональный способ доступа к операндам.
Различные способы адресации базируются на разных механизмах определения физического адреса операнда, то есть адреса фактического обращения к памяти при выполнении команды. Определение набора способов адресации, закладываемых в систему команд, является одним из важнейших вопросов разработки ЭВМ, существенно влияющим на ее архитектуру, вычислительные возможности, объем оборудования, быстродействие и другие характеристики.
К основным способам адресации относятся следующие: прямая, непосредственная, косвенная, относительная. trialя адресация. Физический адрес операнда совпадает с кодом в адресной части команды (рис.1.9). Формальное обозначение: Операнді = (Аі), где Аі - код, содержащийся в i-м адресном поле команды.
ЗУ А1
Операнді
Рис.1.9. Прямая адресация
18
Выше при описании способов кодирования команд и расчете длины адресного поля предполагалось использование именно этого способа адресации.
Допускается использование прямой адресации как при обращении к основной, так и к регистровой памяти.
Непосредственная адресация. В команде содержится не адрес операнда, а непосредственно сам операнд (рис.1.10):
КОП Операнді
Рис.1.10. Непосредственная адресация
Операнді= Аі.
Непосредственная адресация позволяет повысить скорость выполнения операции, так как в этом случае вся команда, включая операнд, считывается из памяти одновременно и на время выполнения команды хранится в процессоре в специальном регистре команд (РК). Однако при использовании непосредственной адресации появляется зависимость кодов команд от данных, что требует изменения программы при каждом изменении непосредственного операнда.
Косвенная адресация (рис.1.11). Адресная часть команды указывает адрес ячейки памяти (рис.1.11,а) или номер регистра (рис.1.10,б), в которых содержится адрес операнда: Операнді = ((Аі)).
Применение косвенной адресации операнда из оперативной памяти при хранении его адреса в регистровой памяти существенно сокращает длину поля адреса, одновременно сохраняя возможность использовать для указания физического адреса полную разрядность регистра.
19
ОЗУ
А1
Адресі
Операнді
а) через ячейку ОЗУ
ОЗУ
РП
А1
Адресі Операнд
б) через регистровую память
Рис.1.11. Косвенная адресация
Недостаток этого способа - необходимо дополнительное время для чтения адреса операнда. Вместе с тем он существенно повышает гибкость программирования. Изменяя содержимое ячейки памяти или регистра, через которые осуществляется адресация, можно, не меняя команды в программе, обрабатывать операнды, хранящиеся по разным адресам.
Косвенная адресация не применяется по отношению к операндам, находящимся в регистровой памяти.
Предоставляемые косвенной адресацией возможности могут быть расширены, если в системе команд ЭВМ предусмотреть определенные арифметические и логические операции над ячейкой памяти или регистром, через которые выполняется адресация, например увеличение или уменьшение их значения на единицу. В этом
20 случае данный способ адресации называют автоинкрементной или автодекрементной адресацией соответственно.
Относительная адресация. Этот способ используется тогда, когда память логически разбивается на блоки, называемые сегментами. В этом случае адрес ячейки памяти содержит две составляющих: адрес начала сегмента (базовый адрес) и смещение адреса операнда в сегменте. Адрес операнда определяется как сумма базового адреса и смещения относительно этой базы: Операнді = (базаі смещениеі).
Для задания базового адреса и смещения могут применяться ранее рассмотренные способы адресации. Как правило, базовый адрес находится в одном из регистров регистровой памяти, а смещение может быть задано в самой команде или регистре.
Рассмотрим два примера.
1. Адресное поле команды состоит из двух частей (рис.1.12): в одной указывается номер регистра, хранящего базовое значение адреса (начальный адрес сегмента), а в другом задается смещение, определяющее положение ячейки относительно начала сегмента. Именно такой способ представления адреса обычно и называют относительной адресацией.
21
Адресі
Номер базового Смещение регистра
ОЗУ
РП
Базовый адрес Операнді
Рис.1.12. Относительная адресация
2. Первая часть адресного поля команды также определяет номер базового регистра, а вторая содержит номер регистра, в котором находится смещение (рис.1.13). Такой способ адресации чаще всего называют базово-индексным.
Адрес
Номер базового Номер индексного регистра регистра
РП
ОЗУ
Индекс (смещение)
Базовый адрес Операнд
Рис.1.13. Базово-индексная адресация
Главный недостаток относительной адресации - большое время вычисления физического адреса операнда. Но существенное преимущество этого способа адресации заключается в возможности создания "перемещаемых" программ - программ, которые можно размещать в различных частях памяти без изменения команд программы. То же относится к программам, обрабатывающим по единому алгоритму информацию, расположенную в различных об-
22 ластях ЗУ. В этих случаях достаточно изменить содержимое базового адреса начала команд программы или массива данных, а не модифицировать сами команды. По этой причине относительная адресация облегчает распределение памяти при составлении сложных программ и широко используется при автоматическом распределении памяти в мультипрограммных вычислительных системах.
Сравнить способы адресации можно по большому числу самых разнообразных критериев. В табл.1.1 представлена характеристика рассмотренных способов по времени, необходимому для выборки операнда, длине адресного поля, требуемого для того или иного способа адресации, и удобству использования этого способа адресации при программировании. В соответствующих клетках таблицы помимо указания по методике расчета необходимой величины содержится и место рассматриваемого способа адресации по избранному критерию. При расчетах учитывались лишь основные составляющие, влияющие на значение оцениваемой величины. Естественно, критерий, оценивающий гибкость того или иного способа адресации при программировании, не может быть абсолютно объективным и зависит от характера программы.
23
Критерий Прямая
ОЗУА) РП
Косвенная через через РП
ОЗУ б)
Адресация
Относительная
Базово-индексная
Таблица 1.1
Непосредственная
Время выборки операнда
Длина поля адреса
Гибкость при адресации данных д)
ТОЗУ 3 log2VОЗ
У 5
5
ТРП 2 log2VРП 1
4
2 ТОЗУ 7 log2VОЗУ 5
3
ТОЗУ ТРП 4 log2VРП 1
2
ТОЗУ ТРП ТРК t? 5 log2VРП log2VСЕГМ
4 г)
1
ТОЗУ 2ТРП t? 6
2log2VРП 2
1
TPK 1
Lоперанда 3 в)
6
Принятые обозначения: ТОЗУ - время считывания информации из ОЗУ; ТРП - время считывания информации из РП; ТРК - время считывания информации из регистра команд; t? - время суммирования составных частей адреса; VОЗУ - объем ОЗУ; VРП - объем РП; VСЕГМ - объем сегмента; Lоперанда - длина операнда.
Примечания: а) используется, в основном, для адресации внешних устройств; б) используется крайне редко;
в) зависит от длины операнда; г) зависит от размера сегмента;
д) зависит от особенностей программы.
24
1.3. Цикл выполнения команды
Рассмотрим автоматическое выполнение команды в трехадресной ЭВМ с классической архитектурой. Структурная схема такой ЭВМ показана на рис.1.14.
Обработку команды можно разбить на ряд функционально завершенных действий (этапов), составляющих ее цикл (рис.1.15). Изучение цикла команды проведем при следующих начальных условиях и предположениях: программа и операнды находятся в оперативном запоминающем устройстве (ОЗУ);
адрес ячейки ОЗУ, в которой находится выполняемая команда (k), зафиксирован на счетчике команд (СК);
команда считывается за одно обращение к ОЗУ;
команда, операнды и приемник результата используют прямую адресацию памяти.
Определим взаимодействие узлов и устройств ЭВМ на каждом этапе.
Первый этап - выборка исполняемой команды из ОЗУ. Для реализации этого этапа необходимо код со счетчика команд (СК) = k передать в ОЗУ, обратиться в ячейку ОЗУ с адресом k и содержимое этой ячейки, являющееся кодом этой команды, передать на регистр команд. Соответствующие передачи отмечены на рис.1.14 цифрой 1: передача кода СК на РА (регистр адреса) ОЗУ, дешифрация адреса на дешифраторе адреса (ДША), считывание команды из ячейки (k) ОЗУ и передача ее в РК.
Регистр адреса служит для хранения адреса, по которому происходит обращение к ОЗУ, на время этого обращения. Дешифратор преобразует поступающий на него адрес в унитарный код, который непосредственно воспринимается физическими элементами схем памяти. На его выходах всегда имеется одна и только одна возбужденная шина, соответствующая адресу выбираемой ячейки. Регистр команд предназначен для хранения в процессоре считанной из ОЗУ команды на время ее выполнения. На этом этапе после приема команды на РК дешифратор кода операции (ДШКОП) по операционной части выполняемой команды определяет тип команды.
25
2 3
ДС
1-6
АЛУ 4 БУОП 1-6 УСІ 5 ОЗУ 1,2,3 РПР РР 1
5 ДШКОП
Регистр
1 1
2
3 1,2,3,5 5
ДША
6 РК КОП A B C
УУ
1,2,3,5
РА
1
СК 1
Рис.1.14. Структурная схема трехадресной ЭВМ 26
6
Начало
Считывание команды из ОЗУ. Дешифрирование кода операции.
1
1 Команда да перехода?
2 нет
Считывание 1 первого операнда
3
Считывание второго 1 операнда
Выполнение операции в АЛУ. Запись результата в регистр
4 результата АЛУ, признаков ре-
Запись результата в приемник C и признаков результата - в регистр флагов
5
Условный нет переход? да Условие да выполнено? нет
Формирование адреса следующей команды СК = СК ?
6
СК =
нет 1 Команда последняя ? да Рис.1.15. Цикл выполнения команды
Конец
27
Сигнал с ДШКОП таким образом настраивает блок управления операциями (БУОП), что на его выходах формируются управляющие сигналы (УСІ), которые необходимы для автоматического выполнения всего цикла команды вплоть до занесения в РК новой команды. Формирование УСІ проходит на основе сигналов с датчика сигналов (ДС), который вырабатывает импульсы, равномерно распределенные по своим выходам. Регистр команд, дешифратор кода операции, блок управления операциями, датчик сигналов, счетчик команд составляют устройство управления.
Если данная команда не является командой перехода, то реализуется следующая последовательность этапов как продолжение первого.
Второй этап - выборка первого операнда (a). Необходимо код из поля адреса первого операнда - a из РК передать в ОЗУ, обратиться к ячейке с адресом a в оперативной памяти и код этой ячейки передать в АЛУ. Соответствующие передачи обозначены на рис.1.14 цифрой 2.
Третий этап - выборка второго операнда (b). Он аналогичен второму этапу. Соответствующие передачи на рис.1.14 отмечены цифрой 3.
Четвертый этап - выполнение операции в соответствии с полем кода операции команды. Еще в конце первого этапа коммутатор операций определил тип выполняемой команды. Операнды переданы в АЛУ на втором и третьем этапах. Блок управления операциями формирует управляющие сигналы, необходимые для выполнения данной операции в АЛУ. Результат выполненной в АЛУ операции сохраняется в его внутреннем регистре результата (РР), а признаки результата - в регистре признаков АЛУ. Соответствующие передачи и взаимодействия блоков обозначены на рис.1.14 цифрой 4.
Пятый этап - обращение к ОЗУ и запись по адресу c результата операции. Здесь код поля c регистра команд передается в ОЗУ на РА. Затем в ячейку ОЗУ с адресом c записывается результат операции, находящийся в регистре результата АЛУ. Признаки результата записываются из регистра признаков АЛУ в регистр флагов компьютера, из которого они передаются в БУОП, если очередная считанная в РК команда окажется командой условного перехода. Соответствующие передачи обозначены на рис.1.14 цифрой 5.
28
Шестой этап - формирование адреса ячейки ОЗУ, где находится следующая команда программы, то есть замена старого кода в счетчике команд на новый: (СК)ст = (СК)нов. Так как в ЭВМ предполагается естественный порядок выполнения программы, то следующая команда находится в ячейках ОЗУ, располагающихся сразу же вслед за ячейками, занятыми выполненной командой. Считая, что выполненная команда занимает в памяти ? ячеек, получим, что суть этого этапа заключается в следующем изменении счетчика команд: СК = СК ? . На этом заканчивается цикл выполнения команды: в СК сформирован адрес следующей команды k ?. Выполнение этого этапа может совмещаться с выполнением предшествующих этапов, что и реализовано в большинстве ЭВМ.
Приведенная последовательность этапов повторяется и в дальнейшем для каждой из последующих команд программы, что обеспечивает автоматическое выполнение программы.
При выполнении команды перехода вышеизложенная последовательность этапов меняется. Допустим, в конце выполнения первого этапа дешифратор кода операции зафиксировал выполнение команды безусловного перехода. Эту ситуацию можно представить так: (k) = БП j, то есть код выполняемой команды выбран из ячейки с адресом k, это - команда безусловного перехода (БП), которая должна передать управление на выполнение команды, имеющей смещение j относительно текущей команды. В данном случае выполнение этапов со второго по четвертый блокируется, и выполнение команды безусловного перехода заключается в прибавлении значения j к счетчику команд.
В команде условного перехода нарушение естественного порядка выполнения программы (то есть передача кода k j в СК) происходит только при выполнении определенного условия. Это условие характеризует результат, полученный командой, предшествующей команде условного перехода. Таким условием может быть, например, отрицательный результат или результат, равный нулю.
29
2. Основы схемотехнической реализации ЭВМ
2.1. Системы логических элементов
Системой логических элементов называется функционально полный набор логических элементов, объединенных общими электрическими, конструктивными и технологическими параметрами и использующих одинаковый тип межэлементных связей [1]. Системы элементов содержат элементы для выполнения логических операций, запоминающие элементы, элементы, реализующие функции узлов ЭВМ, а также элементы для усиления, восстановления и формирования сигналов стандартной формы.
Условно-графические обозначения (УГО) некоторых логических элементов представлены на рис.2.1.
&
а) конъюнктор (элемент "И")
1
б) дизъюнктор (элемент "ИЛИ")
&
в) элемент "И-НЕ"
1
г) элемент "ИЛИ-НЕ"
1
д) инвертор (элемент "НЕ")
=1
е) элемент " НЕРАВНОЗНАЧ-НОСТЬ" (сумма по mod 2)
BD ? DI
DO E ж) элемент с тремя выходными состояниями
Рис.2.1. Условно-графические обозначения логических элементов
УГО элемента представляет собой прямоугольник, к которому слева подходят входные сигналы, а справа выходят выходные. Внутри прямоугольника ставится условное обозначение выполняемой элементом логической функции. Если значение выходного сигнала принимает инверсное значение по отношению к обозначенной внутри элемента функции, то данный выход обозначается на УГО элемента кружком (рис.2.1,в - 2.1,д). Аналогично, если активным уровнем вход-
30 ного сигнала является логический "0", то данный вход обозначается кружком (вход E элемента 2.1,ж).
Если элемент выполняет сложную функцию, имеет несколько функционально различных групп входов и выходов, то входы и выходы отделяются от основного поля УГО вертикальными линиями. Внутри каждого из получившихся полей функционально различные группы входов и выходов отделяются друг от друга горизонтальными линиями. На рис.2.1,ж показан элемент, выход которого может находиться в одном из трех состояний: логический "0", логическая "1", состояние высокого сопротивления. В состоянии высокого сопротивления выход элемента отключается от входов всех других элементов, с которыми он связан. Вход E (enable) этого элемента управляет состоянием его выхода. Так как на условно-графическом обозначении этот вход отмечен кружком, то отсюда следует, что функция разрешения передачи двоичного сигнала со входа на выход элемента выполняется при состоянии логического "0" на входе разрешения E. Если на вход E подан сигнал логической "1", то выход элемента находится в отключенном (так называемом "третьем") состоянии.
Каждый логический элемент - это электронно-техническое изделие (рис.2.2). В этих схемах все транзисторы работают в ключевом режиме. Это означает, что при подаче сигнала высокого уровня на базу транзистора, его сопротивление становится пренебрежимо малым, то есть транзистор как бы "стягивается в точку". При низком потенциале на базе транзистора сопротивление между коллектором и эмиттером становится чрезвычайно большим, что фактически означает разрыв цепи.
E E E
R R R Y
X1 X1 X2
X2 а) инвертор в) элемент "ИЛИ-НЕ" б) элемент "И-НЕ"
Рис.2.2. Схемотехническая реализация логических элементов 31
Рассмотрим это на примере работы инвертора (рис.2.2,а). Если сигнал X имеет высокий потенциал, то ключ, реализованный на транзисторе, замкнут, и потенциал точки Y низкий. В противном случае связь между точкой Y и "землей" разорвана, и сигнал Y имеет высокий уровень, что и обеспечивает реализацию логической функции "отрицание".
Для элемента "И-НЕ" сигнал в точке Y будет иметь низкий уровень (НУ) лишь тогда, когда оба сигнала X1 и X2 имеют высокий уровень (ВУ). Работа этого элемента описывается таблицей 2.1.
ТАБЛИЦА 2.1 X1 X2 Y
НУ НУ ВУ НУ ВУ ВУ ВУ НУ ВУ ВУ ВУ НУ
Если принять, как это делается в наиболее распространенных сериях логических элементов, высокий уровень сигнала за логическую"1", а низкий уровень - за логический "0", то получим таблицу истинности данного элемента (табл. 2.2).
Таблица 2.2 X1 X2 Y
0 0 1 0 1 1 1 0 1 1 1 0
Эта таблица соответствует логической функции "И-НЕ".
В то же время, принимая высокий уровень сигнала за логический "0", а низкий уровень - за логическую "1", получим следующую таблицу истинности (табл.2.3).
32
Таблица 2.3 X1 X2 Y
1 1 0 1 0 0 0 1 0 0 0 1
Эта таблица соответствует уже функции "ИЛИ-НЕ".
Таким образом, кодирование сигналов в системе логических элементов может влиять на выполняемую им логическую функцию. В дальнейшем будем полагать кодировку сигналов, принятую для табл. 2.2.
Для элемента "ИЛИ-НЕ" (см. рис.2.2) сигнал в точке Y будет иметь высокий уровень лишь тогда, когда оба сигнала X1 и X2 имеют низкий уровень. Работа этого элемента описывается табл.2.4, а его таблица истинности при сделанных предположениях о кодировке сигнала - табл.2.5. Эта таблица соответствует логической функции "ИЛИ-НЕ".
Таблица 2.4 X1 X2 Y
НУ НУ ВУ НУ ВУ ВУ ВУ НУ ВУ ВУ ВУ НУ
Таблица 2.5 X1 X2 Y
0 0 1 0 1 0 1 0 0 1 1 0
Параметры элементов принято делить на статические и динамические [1]. Статические параметры инвариантны к переходным процессам и измеряются в статическом режиме. Динамические, наоборот, определяют реактивные свойства элемента и измеряются
33 во время переходных процессов.
К статическим параметрам относятся токи, текущие по выводам схемы, и соответствующие напряжения. Отметим среди этих параметров следующие: ток потребления;
напряжение источника питания;
пороговое напряжение низкого уровня (U0); пороговое напряжение высокого уровня (U1); потребляемая мощность;
нагрузочная способность; помехоустойчивость.
Среди многочисленных динамических параметров, характеризующих схему, выделим следующие: время перехода при включении (t10) (задний фронт); время перехода при выключении (t01) (передний фронт); время задержки распространения при включении ( t01 ); время задержки распространения при выключении (t10 );
зд зд среднее время задержки распространения (тзд ср) - интервал времени, равный полусумме времен задержки распространения сигнала при включении и при выключении; в дальнейшем это время будем называть временем задержки элемента (тзд ).
Проиллюстрируем некоторые статические и динамические параметры логических схем на примере работы элемента "НЕ" (см. рис.2.2,а). Временная диаграмма входного и выходного сигналов этого элемента, на которой отмечены его статические и динамические параметры, приведена на рис.2.3.
2.2. Порядок проектирования комбинационных схем
При проектировании схем, выполняющих ту или иную логическую функцию, необходимо обеспечить минимизацию аппаратных затрат на реализацию этих схем, а также во многих случаях необходимо сократить номенклатуру используемых логических элементов. Последнее требование реализуется путем выбора соответствующей системы элементов.
34
t01 t10
U1 U0 0.1U1
0.9U1 0.5U1
t
U1 1
10 зд t
U0
01 t зд
0.9U1
0.5U
1
0.1U1 t
Рис.2.3. Статические и динамические параметры элемента "НЕ"
В настоящее время основные серии интегральных логических схем включают в себя элементы, составляющие некоторый функционально полный логический базис, а также дополнительные элементы, реализующие часто встречающиеся логические функции [1]. В качестве функционально полных базисов используются, как правило, одноэлементные базисы "И-НЕ" либо "ИЛИ-НЕ".
Рассмотрим этапы проектирования комбинационных логических схем на одноэлементном базисе "И-НЕ" без использования каких-либо дополнительных логических элементов на примере проектирования одноразрядного комбинационного сумматора. Такой сумматор является основой построения многоразрядной суммирующей схемы, выполняющей операции над числами, представленными в том или ином коде.
Пример выполнения операции суммирования чисел, представленных в обратном коде: Хок=0.1011 Уок=1.0110
0.1011 1.0110
1.0.0001 1
0.0010
Из примера видно, что в каждом разряде происходит суммирование трех кодов: соответствующих разрядов операндов и перено-
35 са, поступающего из предыдущего разряда (для младшего разряда - циклический перенос из знакового разряда). При этом вырабатывается значение суммы в этом разряде и перенос в следующий разряд.
Условно-графическое обозначение элемента, выполняющего эти действия, приведено на рис.2.4.
X0 SM
Y0 S0 P0 P1
Рис.2.4. Условно-графическое обозначение одноразрядого сумматора
Рассмотрим основные этапы проектирования такой схемы.
Этап 1. Представление функции, выполняемой проектируемой схемой, в каноническом виде, то есть в виде таблицы истинности или одной из совершенных нормальных форм записи. Обычно на этом этапе функцию легче описать таблицей истинности. Так как проектируется двухвыходная логическая схема, то необходимо представить таблицу истинности для каждого ее выхода (табл.2.6).
Таблица 2.6 Входы Выходы
Xi Yi Pi Si Pi 1 0 0 0 0 0 0 0 1 1 0 0 1 0 1 0 0 1 1 0 1 1 0 0 1 0 1 0 1 0 1 1 1 0 0 1 1 1 1 1 1
Этап 2. Минимизация логической функции. На этом этапе можно использовать любые методы минимизации [5]. Специфика минимизации многовыходных функций - необходимость получения устройства, имеющего минимальный общий состав оборудования, то есть следует проводить минимизацию одной функции с учетом возможного использования части полученного оборудования для
36 минимизации другой функции. В нашем примере не будем рассматривать эту особенность и проведем автономную минимизацию каждой функции. Для функций от небольшого (до четырех) числа переменных для минимизации удобно использовать метод диаграмм Вейча. Диаграмма Вейча для функции Si представлена на рис.2.5. yi ?y i xi 0 1 0 1 ?x 1 0 1 0 pi pi pi i
Рис.2.5. Диаграмма Вейча для функции суммы одноразрядного сумматора
Из диаграммы видно, что минимальная дизъюнктивная нормальная форма для функции суммы одноразрядного сумматора совпадает с ее совершенной дизъюнктивной нормальной формой: Si= ?xi?yi pi v ?xi yi?pi v xi?yi?pi v xiyipi Диаграмма Вейча для функции Pi 1 представлена на рис.2.6. yi ?y i xi 1 1 1 0 ?x 0 1 0 0 pi pi pi i
Рис.2.6. Диаграмма Вейча для функции переноса одноразрядного сумматора
Минимальная дизъюнктивная нормальная форма для этой функции имеет вид: Рі 1= xiyi v xipi v yipi
Этап 3. Перевод функции в базис, на котором будет строиться схема. В выбранном варианте это базис "Штрих Шеффера": Si=((xi /xi)/(yi /yi)/pi)/((xi /xi)/yi /(pi /pi))/( xi /(yi /yi)/(pi /pi)/(xi /yi /pi)
1 2 1 3 2 3
4 5 6 7
8 Pi 1=(xi/yi)/(xi /pi)/(yi /pi)
9 10 11
3712
Этап 4. Составление схемы на элементах, реализующих функции выбранного базиса. Для более наглядного отображения этого этапа выше обозначены номера элементов, которые будут реализовывать ту или иную часть функции. Полученные схемы представлены на рис.2.7 и 2.8.
Рассмотрим некоторые схемы, составляющие основу элементной базы любого компьютера.
Дешифратор
Дешифратором называется комбинационная схема, имеющая n входов и 2n выходов и преобразующая двоичный код на своих входах в унитарный код на выходах. Унитарным называется двоичный код, содержащий одну и только одну единицу, например 00100000. Условно-графическое обозначение дешифратора на три входа приведено на рис.2.9.
Номер разряда, в котором устанавливается "1" на выходе дешифратора, определяется кодом на его входах. Ниже приведена таблица истинности трехвходового дешифратора (табл.2.7).
39
DC 0 0 1
2 1 3
4 2 5
6 7
Рис.2.9. Условно-графическое обозначение трехвходового дешифратора
Таблица 2.7
Входы Выходы
2 1 0 0 1 2 3 4 5 6 7
0 0 0 1 0 0 0 0 0 0 0
0 0 1 0 1 0 0 0 0 0 0
0 1 0 0 0 1 0 0 0 0 0
0 1 1 0 0 0 1 0 0 0 0
1 0 0 0 0 0 0 1 0 0 0
1 0 1 0 0 0 0 0 1 0 0
1 1 0 0 0 0 0 0 0 1 0
1 1 1 0 0 0 0 0 0 0 1
Реализация дешифратора в одноэлементном базисе "Штрих Шеффера" достаточно проста, так как таблица истинности для любого выхода имеет только одну единицу. На рис.2.10 представлена схема формирования сигнала на одном из выходов дешифратора (сигнал f5 выходе 5):
40 x0 x1 & ?x1 & ?f5 & f5 x2 1 2 3
Рис.2.10. Схема формирования сигнала на выходе 5 трехвходового дешифратора
Из представленной схемы видно, что фактически логику преобразования выполняет лишь элемент 2, в то время как элемент 1 служит для получения инверсии сигнала x1, а элемент 3 преобразует полученное на элементе 2 инверсное значение функции в пря-
DC 0 0 1
2 1 3
4 2 5
6 7
Рис.2.11. Условно-графическое обозначение дешифратора с инверсными выходами мое. Многие элементы хранения, например триггерные схемы, позволяют получать сигнал в парафазном коде, то есть имеют два выхода, на одном из которых сигнал имеет прямое, а на другом - инверсное значение. Это позволяет избавиться от элемента 1 в схеме. Если предположить, что значения выходных сигналов имеют инверсный вид по отношению к представленному в табл.2.7, то отпадает необходимость в элементе 3. В большинстве реальных интегральных микросхем реализованы именно дешифраторы с инверсными выходами. Обозначение такого дешифратора показано на рис.2.11.
На выходах такого дешифратора образуется унитарный код, со-41 держащий один и только один ноль. Например, если входные сигналы имеют значение 1102=610, то выходы дешифратора, представленного на рис.2.11, будут находиться в состоянии 10111111, то есть выход 6 будет иметь значение, отличное от остальных выходов.
Дешифраторы широко применяются в различных устройствах компьютеров. Прежде всего, они используются для выбора ячейки запоминающего устройства, к которой производится обращение для записи или считывания информации. При этом часть разрядов адресного кода может дешифрироваться дешифраторами, выполненными в виде отдельных интегральных схем, а другая часть разрядов (обычно младшая) дешифрируется с помощью дешифраторов, встроенных непосредственно в БИС запоминающего устройства. Кроме того, дешифраторы находят применение в устройстве управления для определения выполняемой операции, построения распределителей импульсов и в других блоках.
Шифратор
Шифратор - схема, имеющая 2n входов и n выходов, функции которой во многом противоположны функции дешифратора (рис.2.12). Эта комбинационная схема в соотв