Архитектура вычислительной системы
Центральное устройство обработки, или процессор, является ядром всей системы. Процессор включает управляющее устройство (УУ), которое координирует действия других элементов в компьютере; арифметико-логическое устройство (АЛУ), которое является цифровой логической схемой, выполняющей действия над данными как задано управляющим устройством; комплект регистров, которые являются высокоскоростными ячейками хранения используемыми, чтобы временно хранить данные, адреса, и другую информацию в пределах процессора.
Рис. 2. Типовая архитектура центрального процессора
Устройство управления управляет работой микропроцессора, обменом с внешними устройствами и обработкой информации. В состав устройства управления входит уже известный нам дешифратор команд.
Аккумулятор (накопитель)предназначен для временного хранения операндов или результатов операции. Если один из операндов хранится в аккумуляторе, операция выполняется максимально быстро. Аккумулятор представляет собой регистр, разрядность которого совпадает с разрядностью микропроцессора.
Регистры общего назначения — набор регистров, предназначенных для временного хранения операндов, результатов операций или других данных. Вообще операнды, используемые в команде, могут храниться либо в одном из внутренних регистров микропроцессора, либо в запоминающем устройстве. Естественно, обращение к операндам, находящимся в ЗУ занимает больше времени. Поэтому часто используемые данные, результаты операций, используемые как операнды для последующих операций, хранятся во внутренних регистрах микропроцессора — аккумуляторе или регистрах общего назначения. Количество регистров общего назначение различно у разных МП.
Регистр признаков (регистр "флагов") — регистр, каждый бит которого ("флаг") имеет собственное значение и содержит информацию об определенном событии, произошедшем или не произошедшем в процессе выполнения предыдущей команды
Счетчик командхранит адрес следующей выполняемой команды. После загрузки очередной команды содержимое счетчика команд увеличивается таким образом, чтобы он опять указывал на следующую команду. При этом предполагается, что в ЗУ команды программы лежат последовательно друг за другом. Если же порядок выполнения команд изменяется (например, при вызове подпрограммы), адрес очередной команды заносится в счетчик команд с помощью специальной команды ветвления.
Стек. Работу этого важного компонента МПС рассмотрим более детально.
При выполнении программы часто возникает такая специфическая ситуация, как вызов подпрограммы. При переходе к подпрограмме в счетчик команд записывается новое значение, соответствующее адресу первой команды подпрограммы. После окончания выполнения подпрограммы, должно быть продолжено выполнение основной программы. Таким образом, перед вызовом подпрограммы необходимо запомнить адрес следующей команды основной программы ("адрес возврата"), для того, чтобы загрузить его в счетчик команд ("восстановить счетчик команд") по окончании выполнения подпрограммы. При этом нужно учитывать, что вызовы подпрограмм могут быть "вложенными" (из первой вызывается вторая, из второй третья и так далее). Для сохранения адресов возвратов из подпрограмм используется специально организованное запоминающее устройство, называемой стеком.
Стек организован по принципу "последним вошел — первым вышел". Схема работы стека при помещении в него информации представлена на рис. 3.
Рис. 3.Запись в стек
Стек представляет собой набор ячеек (регистров), но запись нового числа ( ) всегда происходит только в самую верхнюю ячейку, называемую "вершиной" стека. При записи следующего числа ( ), первое "продвигается" дальше, вглубь стека, вершина стека освобождается и в нее записывается второе число. Запись третьего ( ) и последующих чисел происходит аналогично.
Извлечение данных из стека происходит в обратном порядке (рис. 3). Извлечено может быть только число, находящееся в вершине стека. При его извлечении, находящиеся в стеке данные "продвигаются" вверх и следующее число занимает место в вершине стека и может быть извлечено из него.
Рис. 4. Чтение информации из стека.
Стек может быть организован аппаратно или программно-аппаратно.
Аппаратный стек и— это специальным образом организованная группа регистров. При помещении данных в вершину стека, его содержимое физически "продвигается" путем перезаписи информации между регистрами. Работа аппаратного стека контролируется специальным блоком управления. Недостаток такого стека – аппаратная сложность и ограниченность объема данных, которые могут быть сохранены.
В случае программно-аппаратного стека в качестве стека используется специально выделенная область основного запоминающего устройства. Одна из ячеек этой области является вершиной стека и ее адрес хранится в специальном регистре микропроцессора, называемом "указатель стека". Именно такой вариант является наиболее распространенным и представлен на рис. 1 При записи данных в стек, уже находящиеся там данные никуда не перемещаются, а "перемещается" вершина стека (путем изменения значения указателя стека), (см. рис. 5). Запись данных всегда происходит в ячейку, являющуюся в данный момент вершиной стека, адрес которой хранится в указателе стека.
Рис. 5. К пояснению работы программно-аппара тного стека.
При извлечении данных из стека указатель перемещается в обратном направлении (рис. 6). Чтение данных всегда происходит из ячейки, являющейся вершиной стека.
Рис. 6.Извлечение данных из стека.
Недостаток программно-аппаратного стека — большее, чем в случае просто аппаратного стека, время, необходимое для записи/извлечения данных. Объясняется это необходимостью обращения к основному ЗУ при каждой операции со стеком. Достоинства — простота аппаратной реализации и отсутствие жестких ограничений на размер стека (фактически его размер ограничен только размером основного ЗУ).
Использование стека для хранения адресов возвратов из подпрограмм позволяет получать адреса возврата в порядке, обратном их помещению. И таким образом обеспечить корректный возврат из подпрограмм даже в случае вложенных вызовов.
В большинстве современных процессоров основной стек, доступный программам, имеет программно-аппаратную реализацию. Соответственно, МП имеет в своем составе регистр-указатель стека. Аппаратный стек применяется в специализированных процессорах.
Стек играет важнейшую роль при организации работы процессора в режиме прерывания программы внешними устройствами.
Работа АЛУ
Каждое АЛУ имеет определенный набор типов данных, которыми оно может манипулировать, и набор операций, которые оно может выполнять над этими данными. Большинство АЛУ поддерживают операции с двоичными целыми числами различных размеров. Некоторые также включают операции, чтобы манипулировать недвоичными числами и числами с плавающей точкой, а также различными нечисловыми данными. Типичные операции АЛУ включают
• арифметические: сложение, вычитание, умножение, деление, сравнение;
• логические: И, ИЛИ, исключающее ИЛИ, инверсия, проверка битов;
• сдвиг и циклическое перемещение битов данных.
Управляющее устройство процессора выполняет выборку команд программы из памяти, декодирует команды и выполняет их, формируя управляющие сигналы. Управляющее устройство координирует все действия АЛУ, памяти и устройств ввода/вывода, непрерывно циклически выполняя ряд операций, которые заставляют команды выбираться из памяти и выполняться. Эта последовательность операций называется циклом команды.
Цикл команды включает пять основных шагов:
1.Команда выбирается из памяти в управляющее устройство процессора и помещается в регистр команды. Местоположение команды в памяти, ее адрес, определяется содержимым специального регистра, который называется программным счетчиком. Содержимое программного счетчика автоматически изменяется после выборки команды, указывая на адрес следующей команды.
2. Управляющее устройство декодирует команду, то есть определяет из кода команды, какие операции нужно выполнить.
3. Данные, участвующие в операции (они называются операнды), считываются из портов ввода, извлекаются из памяти или доступных регистров хранения, указанных в команде.
4. Выполняется операция над выбранными операндами.
5. Результат записывается в регистр, ячейку памяти или порт вывода.
Дата добавления: 2021-09-25; просмотров: 277;