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

4.2. Каноническая структура процессора

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

К аноническая структура процессора изображена на рис. 4.4. Операционный автомат процессора состоит из трех частей: арифметико-логического устройства АЛУ, регистров специального назначения (РСН) и регистров общего назначения (РОН). Эти части связаны между собой с помощью трех шин – шин А, В и С, управляемых множеством сигналов Y={{yA}, {yB}, {yC}, {yАЛУ}, ЧТОП, ЗПОП, ЗОП}, формируемых управляющим автоматом процессора.

АЛУ в данном случае является 32-битовым и позволяет за некоторое время выполнять ограниченный набор микроопераций над одним или двумя словами данных длиной до 32 бит. АЛУ выполняет ограниченный набор функций: может выполнить простую микрооперацию C:=A+1, C:=A+2 или C:=A+4, где 1, 2 и 4 – константы, формируемые управляющим автоматом в соответствии со значением длины обрабатываемого слова 1, 2 или 4 байта; может выполнить микрооперацию инвертирования числа с сохранением знака результата C:= A(30:0), где – операция инвертирования и А(30:0) – 31 младший разряд операнда А; может выполнить микрооперацию сдвиг слова на заданное управляющими сигналами yi и yj количество разрядов C:=Ri(A) и C:=Lj(A), где R и L – символы сдвига слова А вправо или влево на i или j разрядов, определяемые управляющими сигналами yi и yj; может выполнить микрооперацию сложения целых чисел C:=A+B, где операция сложения выполняется с межразрядным переносам и через один разряд, и через 2 разряда и через 4 и более разрядов, как это принято в процессоре, и т.д. Таким образом можно понять, что над входными сигналами с шин А и В можно выполнить любую микрооперацию, реализующую любую вычислимую функцию yАЛУ: C:=φАЛУ(А,В). При этом в управляющий автомат из АЛУ может передаваться любая фиксированная совокупность осведомительных сигналов X1={x1, …, xL-1}, характеризующих состояние АЛУ, на основе которых строится управление операционным автоматом.

В состав регистров специального назначения входят два 32-разрядных регистра: АК – адрес команды и РК – регистр команды. В регистре АК хранится адрес команды, и выборка команды из оперативной памяти производится в соответствии с микропрограммой, изображенной на рис. 4.5. Первый оператор микропрограммы служит для инициирования од-

новременно двух действий : передачи адреса команды АК в регистр адреса оперативной памяти АОП – АОП:=АК, и формирования сигнала чтения из оперативной памяти ЧТОП. Чтобы выполнить эти действия, управляющий автомат процессора (см. рис. 4.4) должен сформировать следующую совокупность управляющих сигналов: yААК: АОП:=АК[31:2], инициирующий передачу адреса команды АК в регистр адреса оперативной памяти АОП, и управляющий сигнал чтения из оперативной памяти ЧТОП, инициирующий операцию чтения. Отметим, что оперативная память может читать и записывать данные только словами. Поэтому адрес команды АК передается в оперативную память как адрес слова – значениями битов от 31-го до 2-го разрядов. При поступлении сигнала ЧТОП в операционный автомат значение адреса команды запоминается в регистре адреса оперативной памяти АОП и формируется сигнал занятости оперативной памяти ЗОП=1, поступающий в управляющий автомат. Поскольку длительность микротакта значительно меньше времени обращения к оперативной памяти, управляющий автомат переходит в состояние ожидания момента окончания обращения к оперативной памяти, что отмечено условной вершиной графа микропрограммы, содержащей значение условия ЗОП (см. рис. 4.5). Когда сигнал занятости оперативной памяти переключается в состояние ЗОП=0, выполняется переход к следующему оператору микропрограммы – передаче прочитанного слова РОП, хранимого в регистре оперативной памяти, в регистр команды РК. Для этого управляющий автомат формирует сигнал yАЛУ1, обеспечивающий передачу значения из регистра оперативной памяти РОП по шине В через арифметико-логическое устройство без преобразования на выходную шину С, и управляющий сигнал yСРК, передающий слово С в регистр команды РК.

После записи команды в регистр команд должен быть дешифрован код операции КО, размещаемый в старших разрядах регистра команды (см. рис. 4.4). Для этого код операции КО передается в управляющий автомат, где он дешифрируется, и вершина микропрограммы, отмеченная кодом операции КО (см. рис. 4.5), используется в качестве переключателя, разделяющего процесс вычислений по нескольким направлениям f1, …, fG, где G – количество операций, реализуемых командами. Будем предполагать, что подавляющее большинство операций выполняются над значениями, хранимыми в регистрах общего назначения, в которых размещаются промежуточные и конечные результаты, базовые адреса и индексы. Очевидно, что выполнение операций f1, …, fG, сводится к выборке операндов, участвующих в операции, выполнении над операндами заданной операции и записи результатов в регистры общего назначения.

Адрес следующей команды может вычисляться двумя способами: путем естественной адресации, когда адрес следующей команды увеличивается на длину команды, определяемую кодом операции, или в зависимости от значения признака результата адресу команды присваивается значение, указанное в команде перехода. На рис. 4.5 выделены операции f1, …, fg, выполняемые с естественным порядком адресации команд, и операции fg+1, …, fG, выполняемые в зависимости от значений признаков результата. При естественном порядке выполнения команд адрес следующей команды вычисляется путем увеличения текущего адреса команды на 1, 2, 3 или 4 байта в зависимости от длины выполненной команды: АК:=АК+consti, где consti – длина выполненной команды, определяемая значением кода операции. При выполнении операций перехода в зависимости от значений признаков результата операции адрес следующей команды принимает значение следующей команды или значение, указанное в операции перехода. Примем, что последнее значение хранится в регистре общего назначения R0. В таком случае адрес следующей команды примет значение АК:=R0.

Как правило, количество операций, выполняемых компьютером, G<2l, где l – число разрядов в коде операции, содержащемся в командах. Команды, в которых код операции недействителен, будем считать неправильными Н и при выполнении такой команды формировать сигнал программного прерывания λ.