Операционный блок (ОБ) занимается преобразованием данных. Управляющий блок (УБ) определяет какое преобразование данных нужно выполнить.
УБ решает следующие задачи:
1. Выборка команды
2. Дешифрация команды и задание операции операционному блоку
3. Вычисление адреса следующей команды
Потом повторяется тоже самое.
Рассмотрим более подробно, что такое ОБ.
ОБ должен реализовывать функционально полную систему операций. Рассмотривая примеры бинарных и операторных программ, мы сделали вывод, что команды бывают двух типов, которые позволяют нам реализовывать функционально полную систему операций:
1. Команды условного перехода (Когда мы рассматривали булевую алгебру, в качестве вычисляемого условия была проверка на значение ячейки памяти).В общем случае, когда мы перейдем к к-значной логике, эта проверка на какое-то значение из к возможных значений.
Была особенность при рассмотрении к-значной логики: можно рассматривать функционально-полный базис к-значной логики(это операции {min,max,+1}),но можно ввести дополнительные опреации, чтобы повысить эффективность программ.В общем случае, условные переходы-это проверка на равенство {<,>,=}. Причем <,> -это излишество, но они помогают писать более компактные программы, и только лишь. Равенства достаточно для обеспечения функциональной полноты.
2. Команды операторных программ. В общем случае – это команды:
-это n-местная команда извлекает значения
и записывает в
. С помощью таких команд можно представить произвольную обработку данных, причем эти команды должны образовать функционально-полную систему операций и эти команды в памяти располагаются последовательно. В теории мы доказали, что произволную функцию от n аргументов можно реализовать за некоторое количесво операций, которые подчиняются следующему ассимптотическому выражению:
. Для того чтобы представить произвольную функцию к-значной логики от n-независимых переменных необходимо выполнить
в некотором функционально-полном базисе, причем чем больше n тем большая доля функций реализуется с указанной сложностью, а это означает, чем сложнее программа, тем меньше надежды у нас получить ее код очень маленьким.
Доказано, что если использовать команды условных переходов и операторные команды, то объем программы сокращается (по отношению к использованию только команд первого типа). Понятно почему.Потому что у нас есть большая степень свободы в выборе операций и может оказаться, что то, что вы хотите сделать с данными уже реализованны аппаратно и не надо это все сложным образом моделировать с использованием инородных операций для этой обработки. Для этого есть специальные вычислительные средства. Отсюда следует попытка увеличения количества исполняемых итераций. Чем больше операций выполняет ОБ, тем более эффективно может быть реализовано обработка данных. Эффективность программы понимается в следующем смысле- это объем памяти необходимый для ее хранения представления и среднее время вычислений. Если бы у нас были операторные программы, то у нас было бы просто время вычислений, а коль у нас есть еще команды условного перехода и команды остановки, поэтому можно говорить о среднем времени вычислений, исходя из этого мы готовы представить, что собой представляет ОБ.
Поясним значение каждой части:
· ALU
Предназначен для выполнения преобразования данных. В связи с тем, что нет в природе функционально полных систем одноместных операций, то ALU должно выполнять не только унарные, но и бинарные операции, а значит у него есть 2 входа А и В. В случае выполнения одноместной операции вход В не используется. В природе не существует функционально полных базисов, состоящих из одноместных операций, а значит устройство преобразования данных должно выполнять операции, как минимум над 2 операндами. В результате двухместной операции получается 1 результат. ALU — устройство комбинационного типа, т.е. не содержат внутренней памяти. А это значит, что они реализуют наиболее простые операции: сложение в дополнительном коде, коньюнкция, дизъюнкция, исключающее или. Никаких других операций современные ALU не выполняют, потому что сложение является единственной операцией, которое реализует функционально полную систему команд. Какой бы процессор ни взять, ни одно ALU не реализует большую систему команд. Никакие другие команды современные процессоры в рамках ALU не реализуют. Объясняется это следующим : при реализации более сложных программ количество логических элементов, которое необходимо чтобы реализовать это ALU, становиться очень большим. Поэтому реализуют малое число команд.
· Сдвиговый регистр (RG)
Используется для выполнения арифметических и циклических сдвигов и предназначен для повышения эффективности обработки данных. Реализует следующие простые операции:
1)сдвиг вправо влево на 1 разряд циклический
2)сдвиг влево вправо на 1 разряд арифметический
Регистровый файл служит для временного хранения наиболее часто используемых операндов и является продолжением запоминающего устройства данных, имеющим свою систему адресации и более быстродействующим. Относится к классу сверхзапоминающих устройств и используется для хранения наиболее часто используемых операндов. Вводятся команды пересылки данных из ЗУК в регистровый файл, чтобы потом ALU могло выполнить эту обработку. Если бы мы так не делали, то мы обращались бы по любому поводу и без повода в ЗУК.
3. Команды пересылки данных между регистровым файлом и основной памятью(ЗУК, ЗУД)
Примечание к схеме:
Незадействованные стрелки — это управляющие воздействия, которые идут от УБ. УБ сообщает из каких ячеек регистрового файла подать на вход А сигнал RA или на вход В сигнал RB требуемые данные и выдает соответствующее управляющее воздействие на регистровый файл. Далее данные поступают на ALU. ALU выдает операцию из перечисленных одну, по окончанию этой операции защелкивает данные в регистре сдвига. Если требуется, выполняется операция сдвига. При выполнения команд сдвига ALU пропускает данные через себя без обработки.
· Регистровый файл.
Регистровый файл может работать в 2 режимах или чтения или записи, но не одновременно. Регистровый файл состоит из множества регистров(сколько регистров столько ячеек).
