русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Исполнение команд

Программа, которую выполняет процессор, состоит из набора хранящихся в памяти команд. В простейшем виде обработка команд проходит в две стадии: процессор считывает (выбирает) из памяти, а затем запускает очередную коман­ду. Исполнение программы сводится к повторению процесса выборки команды и ее исполнения. Для выполнения одной команды может потребоваться несколько операций; их число определяется природой самой команды.

Набор действий, требующихся для реализации одной команды, называется ее циклом. На рис. 1.2 показан процесс обработки команд процессором в такой упрощенной схеме, включающей два этапа. Эти этапы называются циклом выборки и циклом исполнения. Прекращение работы программы происходит при выключении машины, в случае возникновения какой-либо фатальной (неисправимой) ошибки, или если в программе имеется команда останова.


Рис 1.1. Компоненты компьютера: общая структура

 

 

Выборка и исполнение команды

В начале каждого цикла процессор выбирает из памяти команду. Обычно адрес ячейки, из которой нужно извлечь очередную команду, хранится в программном счетчике (PC). Если не указано иное, после извлечения каждой команды процессор увеличивает значение программного счетчика на единицу. Таким образом, команды выполняются в порядке возрастания номеров ячеек памяти, в которых они хранятся. Рассмотрим, например, упрощенный компьютер, в котором каждая команда занимает одно 16-битовое слово памяти. Предположим, что значение программного счетчика установлено равным 300. Это значит, что следующая команда, которую должен извлечь процессор, находится в 300-й ячейке. При успешном завершении цикла команды процессор перейдет к извлечению команд из ячеек 301, 302, 303 и т.д. Однако, как мы вскоре узнаем, эта последовательность может быть изменена.

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

  • Процессор — память. Данные передаются из процессора в память или обратно.
  • Процессор — устройства ввода-вывода. Данные из процессора поступают на периферийное устройство через устройство ввода-вывода.  Возможен и обратный процесс.
  • Обработка данных. Процессор выполняет с данными различные арифметические или логические операции.
  • Управление. Команда может задавать изменение последовательности выполнения команд. Например, если процессор извлекает из ячейки 149 команду, которая указывает, что следующей по очереди должна быть исполнена команда из ячейки 182, то процессор устанавливает значение программного счетчика равным 182. Таким образом, в следующем цикле выборки команда извлекается не из ячейки 150, а из ячейки 182.

Для выполнения команды может потребоваться последовательность, состоящая из комбинации вышеперечисленных действий.
Рассмотрим, например, гипотетическую машину, характеристики которой приведены на рис. 1.3. В процессоре имеется один регистр данных, который называется аккумулятором (accumulator — АС). Команды и данные имеют длину 16 бит. В такой ситуации память удобно организовать в виде 16-битовых ячеек, в каждой из которых помещается одно слово. Формат команды предусматривает выделение 4 бит для кода операции. Таким образом, всего может быть 24 = 16 различных кодов операций (их можно представить одной шестнадцатеричной2 цифрой), а адресовать можно до 212 = 4096 (4 К) слов памяти (которые можно представить трехзначным шестнадцатеричным числом).

Рис. 1.4, на котором показаны определенные ячейки памяти и регистры процессора, иллюстрирует исполнение фрагмента программы. В этом фрагменте слово, хранящееся в памяти по адресу 940, складывается со словом, хранящимся в памяти по адресу 941, а результат сложения заносится в ячейку 941. Для выполнения этого действия потребуются три команды, каждая из которых включает свой цикл выборки и цикл исполнения.

Рис. 1.3. Характеристики гипотетической машины


Рис. 1.4. Пример исполнения программы (содержимое памяти и регистров представлено шестнадцатеричными числами)

  1. Адрес первой команды, хранящейся в программном счетчике, — 300. Эта команда (она представлена шестнадцатеричным числом 1940) загружается в регистр команд (IR), а показание программного счетчика увеличивается на 1. Следует отметить, что в этом процессе участвуют регистры адреса и буфера памяти, однако для упрощения они игнорируются.
  2. Первые 4 бит (первая шестнадцатеричная цифра) регистра команд указы вают на то, что нужно загрузить значение в аккумулятор. Остальные 12 бит (три шестнадцатеричные цифры) указывают адрес 940.
  3. Из ячейки 301 извлекается следующая команда (5941), после чего значение программного счетчика увеличивается на 1.
  4. К содержимому аккумулятора прибавляется содержимое ячейки 941, и результат снова заносится в аккумулятор.
  5. Из ячейки 302 извлекается следующая команда (5941), затем значение программного счетчика увеличивается на 1.
  6. Содержимое аккумулятора заносится в ячейку 941.

Этот пример показывает, что для сложения содержимого ячеек 940 и 941 необходимы три цикла команды. При более сложном наборе команд циклов понадобилось бы меньше. Современные процессоры выполняют команды, в состав которых может входить несколько адресов. При этом во время цикла исполнения некоторых команд иногда выполняется несколько обращений к памяти. Вместо обращений к памяти в команды может быть задана операция ввода-вывода.

 

 

Функции ввода-вывода

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

Процессор может не только читать данные из памяти и записывать их туда, обращаясь по адресу к определенной ячейке, но также читать и записывать данные в устройство ввода-вывода. Таким образом, устройство ввода-вывода (например, контроллер диска) обменивается данными с процессором. При этом процессор должен идентифицировать устройство, которое будет управляться определенным устройством ввода-вывода. Из команд ввода-вывода можно сформировать такие же последовательности, как показанные на рис. 1.4 последовательности команд обращения к памяти.

Иногда желательно, чтобы обмен данными с памятью выполнялся непосредственно устройством ввода-вывода, а процессор в это время выполнял другие задания. В этом случае процессор передает устройству ввода-вывода полномочия для чтения из памяти и записи в память, что позволяет освободить процессор. Во время такой передачи данных устройство ввода-вывода читает или записывает команды в память, принимая на себя ответственность за этот обмен. Такой режим, известный под названием прямого доступа к памяти (direct memory access — DMA), рассматривается в следующих разделах этой главы.

Просмотров:

Вернуться в оглавление:Операционные системы




Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.