Основные стадии выполнения команды




Для того чтобы микропроцессор мог выполнить ту или иную операцию, необходимы инструкции, или команды. [10]

Команды хранятся в основной памяти. Каждая команда – это группа битов, соответствующая определённой операции. Обычно команда делится на поля, каждое из которых определяет какой–либо атрибут команды, а поле операции в ней определяет саму выполняемую операцию (сложение, пересылка, дополнение и т.д.).

Код каждой операции – это уникальная последовательность битов длиной от 1 до 2 байт.

Код операции Регистр Адресное поле

Поле регистра определяет номер регистра, который содержит данные, принимающие участие в операции, а адресное поле служит для определения участка памяти, содержащего данные, используемые при вычислениях (длина от 0 до 8 байт).

Команды размещают в оперативной памяти (ОП) в определённой последовательности – по порядку выполнения. Очередная выполняемая команда определяется с помощью содержимого специального регистра – счётчика команд. Последний содержит адрес области памяти, в которой расположена следующая выполняемая команда. Микропроцессор использует содержимое счётчика команд для выборки из памяти этой команды. Во время выполнения команда хранится в регистре команд. Различные команды для размещения в ОП используют различное количество битов, так как в некоторых командах есть адресное поле, а в некоторых нет. А потому ЭВМ использует команды переменной длины: 1, 2,…, 11 байт. В зависимости от этой длины, в счётчик добавляется число 1, 2,…, 11 (по количеству байт).

Работа процессора сводится к выполнению повторяющихся рабочих циклов, каждый из которых соответствует определённой выполняемой команде.

Есть операции над целыми числами: команды пересылки, арифметических, логических, битовых операций, сдвигов и операций со строками символов.

Операции над числами с плавающей точкой выполняются тоже в процессоре: пересылки данных, арифметические, сравнения и команды управления FPU.

Кроме этих операций, есть ещё команды управления программой, защиты памяти и поддержки языков высокого уровня.

Выполнение любой команды начинается с анализа запроса прерывания. Если прерывания нет, то выбирается команда, а иначе обрабатывается прерывание.

После выборки команды сразу формируется адрес следующей команды, и анализируется код операции текущей команды. В зависимости от кода, формируются адреса операндов команды или выполняются действия по кодам операций управления. Затем выполняются сами операции, формируются признаки результата и запоминается результат. После этого управление передаётся на выполнение следующей команды.

Регистры

В ПК четыре регистра общего назначения [11]: EAX, EBX, ECX, EDX. Они 32–разрядные (об этом здесь и далее говорит первая буква Е). В старых моделях для 8–разрядных PС они именовались А, B, С, D, для 16–разрядных – АХ, BХ, СХ, DX, причем младший байт именовался AL, BL, CL, DL, а старший – AH, BH, CH, DH. Регистр АХ (AH, AL) чаще всего служат местом хранения результатов вычислений (это аккумулятор), используется в командах умножения, деления, ввода и вывода слов. Регистр BX чаще хранит сегмент адреса, но может хранить и другие виды данных. Регистр CX обычно хранит число выполнения определённых операций и указывает длину строковых операций, слова, ввод и вывод с косвенной адресацией. Регистр DX обычно называют регистром данных. Используется для умножения и деления.

Есть один специфический регистр – EFLAGS (флаговый). В битах этого регистра хранятся флаги результатов выполнения последней операции, флаги состояния процессора, режим работы и т.д. Значения флагов управляют поведением процессора при выполнении условных команд.

Регистры смещений (внутрисегментной адресации) IP, SP, BP, SI, DI используются для хранения относительных адресов ячеек памяти внутри сегментов (смещений относительно начала сегментов).

Адрес выполняемой в данный момент команды хранится в регистре
EIP
– указателе команд. Он указывает на ячейку основной памяти с выполняемой командой, а для определения реального адреса ещё необходимо использовать регистр сегмента кода.

Есть два регистра–указателя: регистр–указатель базы EBP (смещение начального адреса, отведённого под стек) и регистр–указатель стека ESP (смещение вершины стека). В каждом из них содержится сегментная часть адреса для реального режима. В защищённом режиме там хранится селектор.

Адреса перемещаемых строк данных (многобайтные последовательности произвольной длины) хранятся в регистре индекса–источника ESI и регистре индекса–назначения EDI.

Регистры сегментной адресации CS, DS, SS, ES используются для хранения начальных адресов полей памяти (сегментов).

Первый – регистр сегмента кода CS – содержит значение, которое совместно со значением регистра команд указывает следующую выполняемую команду. Второй – регистр сегмента данных DS. Обычно он указывает область памяти, в которой содержатся данные. Его значение может комбинироваться со значениями регистров BX, SI и DI для указания определённого байта или слова данных. Третий регистр называется регистром дополнительного сегмента ES. Это резервный сегментный регистр, чаще применяемый для стековых операций. Четвертый регистр называется регистром сегмента стека SS. Его значение комбинируется с содержимым указателя стека ESP для указания слова данных, обрабатываемого в данный момент в стеке. Иногда SS комбинируют с EBP.

В регистрах FS и GS хранятся данные.

Управляющие регистры ECR0, ECR1, ECR2, ECR3, ECR4 хранят признаки состояния процессора, общие для всех задач. Они 32–разрядные.

Системные адресные регистры предназначены для ссылок на сегменты и таблицы в защищённом режиме. Они 48–битные. Регистры GDTR и IDTR программно загружаются 6–байтными операциями, включающими 32–битный линейный базовый адрес (старшие биты) и 16–битный лимит глобальной таблицы дескрипторов и таблицы дескрипторов прерываний.

Следующая группа регистров используется для обработки чисел с плавающей точкой. Регистры для хранения таких чисел могут быть 80–разрядные. Они используются в математическом сопроцессоре и называются регистрами данных FPU или арифметическим стеком. Их 8: с R0 по R7. Совместно с 15–разрядными регистрами математического сопроцессора и полями регистров тегов (TAG(0) – TAG(7), они тоже 15–разрядные) они производят действия над числами с плавающей точкой.

MMX–команды обрабатывают числа с плавающей точкой, используя для этого 64 младших бита стека сопроцессора. Они могут обрабатывать одновременно 8 однобайтных, четыре 16–разрядных или два 32–разрядных числа.

Новые SIMD–команды обрабатываются в специальных 128–разрядных регистрах XMM (eXtended MultiMedia – это восемь 2–разрядных целых или 4 значения с плавающей точкой одинарной точности). Это инструкции SSE2 (Streaming SIMD Extensions), предназначенные для обработки 3D–графики, кодирования/декодирования видео, а также шифрования данных. Совместно с этими регистрами используется 32–разрядный регистр состояния / управления MXCSR. Он используется для управления обработкой числовых исключений, установки режима округления и режима очистки, а также чтения флагов состояния ХММ.

Память

Память компьютера – это устройство хранения информации. Ее типы приведены на рис. 5.3.

На рисунке внутренняя память представлена как сумма двух типов памяти: оперативной и постоянной, а устройствами внешней памяти могут быть дискета, CD–ROM, CD–RW, CD–R, DVD–R, DVD–RW.

Оперативная память хранит данные и программу решения задачи в текущий момент времени и ряд вспомогательных программ для организации работы компьютера.

Постоянная память позволяет только считывать информацию, т.к. в ней хранятся программы контроля устройств и ряд программ, постоянно используемых при работе компьютера.

Внешняя память является автономной памятью и предназначена для длительного хранения информации. Её обработка производится после её перемещения в оперативную память.

Устройства хранения информации (жесткие и гибкие диски, CD–ROM, DVD–ROM и др.) подключаются к южному мосту по шине UDMA (Ultra Direct Memory Access – прямое подключение к памяти).



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2016-02-16 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: