Меню:
|
Основные узлы процессора
Основной узел процессора - АЛУ
Теперь мы знаем, как можно управлять какими-либо
устройствами, в зависимости от условий и формировать последовательности
управляющих сигналов. Теперь необходимо изучить технологию выполнения
простейших арифметических и логических операций. В нашем распоряжении имеется
узел, который может выполнять такие операции – АЛУ. АЛУ представляет собой
комбинационную схему, состояние выхода которой соответствует какой-либо
логической или арифметической функции от входных данных. Когда данные на входе
есть – на выходе есть результат, когда нет – нет и результата. Соответственно,
пока АЛУ выполняет операцию над данными, они должны где-то храниться. Например,
в регистре. Для выполнения большинства операции, АЛУ необходимо два аргумента и
для них в нем имеется два входа. Соответственно, и регистров для входных
данных АЛУ должно быть два.
Устройство для сдвига данных
Для организации вычислений и обработки данных очень часто
бывает необходимо сдвигать слово данных на заданное число разрядов в ту или
иную сторону. При помощи АЛУ можно сдвинуть слово данных в сторону старшего
разряда, если сложить число с самим собой (В двоичной системе исчисления сдвиг
на один разряд влево дает тот же результат, что и умножение на 2 или сложение
числа с самим собой). Однако необходим сдвиг и в обратную сторону, а при помощи
АЛУ его выполнить нельзя. Также может быть необходим сдвиг данных и на большее
число разрядов за один раз. Поэтому имеет прямой смысл объединить АЛУ с
параллельным сдвигателем в один блок, и получать результат операции не с выхода
АЛУ, а с выхода сдвигателя, расположенного следом за ним.
Регистровый файл
Когда мы получим результат операции над двумя аргументами,
хранящимися во входных регистрах, прежде чем переходить к следующей операции
необходимо этот результат где-то сохранить.
Вообще говоря, данные можно сохранять и в оперативной
памяти, внешней по отношению к процессору. Однако обращение к внешней памяти
представляет собой не самое простое действие, и занимает некоторое,
сравнительно большое время. Поэтому внутри процессора почти всегда делают
регистровый файл, состоящий из нескольких регистров. Причем чем больше
регистров будет внутри процессора, тем лучше.
Основной тракт данных
В регистровом файле должен сохраняться результат выполненной
операции. Но при этом, для выполнения операции необходимо извлекать данные,
хранящиеся в регистровом файле для использования в качестве аргументов для
операции. Получается, что выход сдвигателя должен быть соединен с входом
регистрового файла, а выход регистрового файла с входом входных регистров АЛУ.
Таким образом, мы пришли туда, откуда начали, т.е. у нас образовалось кольцо из
узлов обработки и хранения данных. Это кольцо мы будем называть основным
трактом данных.
Какие еще нужны узлы?
Однако мы упомянули далеко не все узлы, которые нужны для
обработки данных в процессоре. Необходимы и другие, вспомогательные узлы и
необходима возможность передавать данные в эти узлы из тракта данных, и
наоборот, из этих узлов в тракт данных:
- Необходим счетчик команд для хранения адреса
текущей команды, с возможностью автоматического увеличения, а также
считывания и записи данных.
- Необходим специальный регистр состояния для
хранения признаков результата выполнения операции, таких как равенство операндов,
перенос при сложении, перенос при сдвиге.
Кроме того, необходимо иметь возможность приема и передачи
данных в оперативную память и внешние устройства. Обычно для этого используют
внешнюю шину. Для организации взаимодействия процессора с внешней шиной,
необходимо иметь следующие возможности:
- Принимать данные с внешней шины, и сохранять их, для
дальнейшей передачи другим узлам – необходим регистр входных данных
шины.
- Принимать данные от других узлов процессора, для передачи
на шину данных – необходим регистр выходных данных шины.
- Принимать данные от других узлов процессора, для передачи
на шину адреса при обращении к аргументам команд, хранящимся в оперативной
памяти – необходим регистр адреса шины.
- Передавать на шину адреса содержимое регистра адреса шины
при обращении к памяти в процессе выполнения команды и содержимое счетчика
команд при выборке самой команды – необходим селектор адреса шины.
Ну и наконец, необходим регистр для хранения самой команды в
процессе выполнения. Этот регистр должен принимать данные с шины и передавать
их управляющим схемам.
Часть содержимого регистра команд – адреса регистров, в
которых хранятся операнды, должна коммутироваться и передаваться в регистровый
файл. Для этого необходимо специальное коммутационное устройство.
Автор текста - Молчанов Н.Н.
|
Дополнительно:
|