- •Содержание
- •Введение
- •1 Цель курсового проектирования
- •2 Задание на курсовое проектирование
- •3 Разработка структурной схемы вычислительного устройства
- •4 Выбор системы команд и определение форматов команд вычислительного устройства
- •5 Разработка алгоритма командного цикла вычислительного устройства
- •5.1 Алгоритм выборки команды
- •5.2 Алгоритм перехода к подпрограмме прерывания
- •5.3 Алгоритм формирования операндов для арифметико-логического устройства
- •5.4 Алгоритм выполнения команд передачи управления
- •5.5 Алгоритм вызова подпрограммы
- •5.6 Алгоритм возврата из подпрограммы
- •5.7 Алгоритмы операций со стеком
- •5.8 Алгоритмы выполнения операций с ву
- •5.9 Алгоритмы системных операций
- •5.10 Алгоритм выполнения операции записи в озу
- •5.11 Алгоритм выполнения операции чтения из озу
- •6 Разработка алгоритмов выполнения арифметических и логических операций
- •6.1 Алгоритм выполнения операций сложения и вычитания
- •6.2 Алгоритм выполнения логических операций
- •6.3 Алгоритм выполнения операции умножения
- •6.4 Алгоритм выполнения операции деления
- •7 Проектирование операционного автомата устройства выполнения команд
- •8 Проектирование операционного автомата арифметико-логического устройства
- •9 Проектирование устройств управления процессора и алу двухступенчатой организации процесса управления
- •9.1. Проектирование управляющего автомата устройства управления процессора
- •9.2. Проектирование управляющего автомата устройства управления алу
- •10 Пример кодирования пзу мк мпа алу для реализации микропрограммы операций сложения и вычитания
- •11 Разработка функциональной схемы процессора
- •Заключение
- •Список использованной литературы
- •Приложение
5.4 Алгоритм выполнения команд передачи управления
Алгоритмы операций переход выполняются в зависимости от состояния соответствующих флагов (рисунки приложения 4.1 – 4.5) Управление на новый адрес передается путем загрузки программного счетчика либо значением из регистра аккумулятора А для команды формата AS, либо значением из регистра Р для команды формата RR
5.5 Алгоритм вызова подпрограммы
Алгоритм вызова подпрограммы, представленный на рисунке приложения 5.1 реализуется так. Сначала необходимо сохранить в стеке содержимое программного счётчика. Так как ОЗУ имеет разрядность 8, а сохраняемый программный счетчик 11, нам необходимо сохранить РС в две соседние ячейки памяти, т.е. занять две ячейки стека и указатель стека уменьшить на 2. После этого управление передается на новый адрес, который берется из регистра аккумулятора А для команд формата AS, или из регистра Р для RR.
5.6 Алгоритм возврата из подпрограммы
Для возврата из подпрограммы (рисунок приложения 6.1) необходимо извлечь из стека сохраненное значение программного счетчика РС. Это значение хранится в двух ячейка стека. Сначала устанавливаем на шину адреса значение указателя стека SP, по полученному адресу считываем 8 бит из ОЗУ на ШД. Потом переходим к следующей ячейки памяти, увеличив SP на 1. В старшие 3 бита программного счетчика копируем значение 3х младших бит с ШД и увеличиваем значение SP на 1. Далее опять устанавливаем на ША значение SP, и по полученному адресу считываем на ШД еще 8 бит. Копируем в РС эти биты начиная с младших разрядов, увеличиваем значение SP еще на 1. Таким образом устанавливаем сохраненное значение программного счетчика.
5.7 Алгоритмы операций со стеком
При выполнении команды записи в стек (рисунок приложения 7.1) сначала сдвигается указатель стека на 2 в сторону младших адресов, освободив место под 16 бита данных (28 бит в ячейке памяти).
Для формата RR выставляется на шину данных значение из регистра, адрес которого хранится в регистре команды. Для формата AS на шину адреса выставляется значение поля S из регистра команд RgI. По этому адресу происходит выборка из памяти 16ти битов на шину данных. Начиная с адреса, определяемого SP, записываем данные с ШД в память.
При выполнении операции чтения из стека (рисунок приложения 7.2) вначале следует прочитать 16 битов на шину данных из ОЗУ, начиная с адреса, определяемого SP. Для формата RR данные с ШД заносятся в регистр, адрес которого указан в команде. Для формата АS на шину адреса выставляется значение поля S из регистра команд RgI. По этому адресу значение с ШД заносится в память. Затем сдвигается указатель стека на 2 в сторону старших адресов для освобождения мест, занимаемых ранее, прочитанными 16-ю битами данных (28 бит в ячейке памяти).
При выполнении команд сложения и вычитания со стеком (рисунок приложения 7.3) для формата AS на шину данных копируется содержимое регистра, номер которого записан в регистре команды. Для формата AS на шину адреса выставляется значение поля S из регистра команд RgI. По этому адресу происходит выборка из памяти 16х битов на шину данных. Затем данные с ШД заносятся в регистр РВ. После этого необходимо прочитать 16 битов на шину данных из ОЗУ, начиная с адреса, определяемого SP. Полученные данные с ШД заносятся в регистр РА. После этого, в зависимости от кода операции, производится сложение либо вычитание операндов в АЛУ; результат операции выгружается на шину данных либо из аккумулятора А, либо из регистра Р, в зависимости от формата команды, затем записывается с шины данных в ОЗУ, начиная с адреса, определяемого SP.