СХЕМА.RU - Радиолюбительский портал » Статьи » Микропрограммирование процессора

Микропрограммирование процессора

11-11-2012, 18:54 От: admin Посмотрели: 1028
Все действия микропроцессора и сигналы на его выводах определяются последовательностью микрокоманд, подаваемых на управляющие входы блока обработки. Эта последовательность микрокоманд называется микропрограммой.

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

Временные диграммы считывания команды из ОЗУ (4664 bytes)

Рисунок 1. Временные дигаммы считывания команды

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

Работа любого цифрового устройства начинается с заранее заданных начальных условий. Эти начальные условия формируются специальным сигналом RESET (сброс), который формируется после подачи питания на схему. Договоримся, что сигнал сброса микропроцессора будет записывать в регистр программного счетчика PC нулевое значение. (Это условие справедливо не для всех процессоров. Например, IBM совместимые процессоры при сбросе микросхемы записывают в программный счётчик значение F0000h.)

Выполнение любой команды начинается с её считывания из системной памяти (ОЗУ или ПЗУ). Необходимые для этого микрокоманды подаются на входы управления БОС из блока микропрограммного управления БМУ, как только снимается сигнал сброса со счётчика микрокоманд БМУ. При считывании однобайтной команды достаточно считать из системной памяти только код операции и выполнить эту операцию. Временная диаграмма этого процесса приведена на рисунке 2. Последовательность операций, которые необходимо выполнить микропрограмме, показана стрелочками. Для считывания следующей команды микропрограмма запускается заново.

Временные диаграммы сигналов считывания команд из ОЗУ(3761 bytes)

Рисунок 2. Временные диаграммы сигналов считывания команд из ОЗУ.

Для того, чтобы считать код операции из системной памяти, необходимо выставить на шине адреса адрес этой команды. Этот адрес хранится в счетчике команд PC. Скопируем его в регистр адреса RA, выходы которого подключены к шине адреса:


Поля микрокоманды БОС
N Описание константа источник A источник B команда приёмник
1) PCH -> RAH 1111 1111 1111 1010 0011 0 0 1100
2) PCL -> RAL 1111 1111 1111 1011 0011 0 0 1101

Затем сформируем сигнал считывания. Для этого в регистр управления запишем константу 1111 1101.


Поля микрокоманды БОС
N Описание константа источник A источник B команда приёмник
3) const -> CR 1111 1101 1111 1111 0011 0 0 1110

Теперь можно считать число с шины данных, а так как системная память в этот момент выдаёт на нее код операции, то мы считаем именно этот код. Запишем его в регистр команд и снимем сигнал чтения с системной шины. Для этого в регистр управления запишем константу 1111 1111.


Поля микрокоманды БОС
N Описание константа источник A источник B команда приёмник
4) data -> RI 1111 1111 1100 1111 1100 0 0 1001
5) const -> CR 1111 1111 1111 1111 0011 0 0 1110

Прежде, чем перейти к дальнейшему выполнению микропрограммы, увеличим содержимое счетчика команд на 1.


Поля микрокоманды БОС
N Описание константа источник A источник B команда приёмник
6) PCL+1 -> PCL 1111 1111 1011 1111 1100 1 0 1011
7) PCH+C -> PCH 1111 1111 1010 1111 1100 1 0 1010

После считывания команды её необходимо декодировать. Это можно выполнить микропрограммным способом проверяя каждый бит регистра команд и осуществляя ветвление по результату проверки или включить в состав блока микропрограммного управления аппаратный дешифратор команд, который сможет осуществить ветвление микропрограммы на 256 ветвей за один такт синхронизации микропроцессора. Выберем именно этот путь. Восьмым тактом микропрограмма направляется на одну из 256 ветвей, отвечающую за выполнение считанной инструкции. Например, если была считана команда MOV A, R0, то следующая микрокоманда будет выглядеть следующим образом:


Поля микрокоманды БОС
N Описание константа источник A источник B команда приёмник
9) R0 -> ACC 1111 1111 0000 1111 1100 0 0 1000

И так как в этом случае команда полностью выполнена, то счётчик микрокоманд сбрасывается для выполнения следующей команды.

Рассмотрим ещё один пример. Пусть из системной памяти считывается команда безусловного перехода JMP 1234. Первые восемь микрокоманд совпадают для всех команд микропроцессора. Различие наступает начиная с девятой команды, которая зависит от конкретной инструкции. При выполнении команды безусловного перехода необходимо считать адрес новой команды, который записан в байтах, следующих за кодом операции. Этот процесс аналогичен считыванию кода операции:


Поля микрокоманды БОС
N Описание константа источник A источник B команда приёмник
9) PCH -> RAH 1111 1111 1111 1010 0011 0 0 1100
10) PCL -> RAL 1111 1111 1111 1011 0011 0 0 1101
11) const -> CR 1111 1110 1111 1111 0011 0 0 1110
12) data -> RI 1111 1111 1100 1111 1100 0 0 1001
13) const -> CR 1111 1111 1111 1111 0011 0 0 1110
14) PCL+1 -> PCL 1111 1111 1011 1111 1100 1 0 1011
15) PCH+C -> PCH 1111 1111 1010 1111 1100 1 0 1010

Теперь считаем второй байт адреса перехода.


Поля микрокоманды БОС
N Описание константа источник A источник B команда приёмник
16) PCH -> RAH 1111 1111 1111 1010 0011 0 0 1100
17) PCL -> RAL 1111 1111 1111 1011 0011 0 0 1101
18) const -> CR 1111 1110 1111 1111 0011 0 0 1110
19) data -> PCH 1111 1111 1100 1111 1100 0 0 1110
20) const -> CR 1111 1111 1111 1111 0011 0 0 1110
21) RI -> PCL 1111 1111 1001 1111 1100 1 0 1001

В результате выполнения этой микропрограммы в программный счётчик будет загружен адрес, записанный во втором и третьем байтах команды безусловного перехода JMP 1234. Временная диаграмма, формируемая рассмотренной микропрограммой, приведена на рисунке 3.

RdJmp.gif (6120 bytes)

Рисунок 3. Временная диаграмма выполнения команды JMP 1234.

 

Источник: www.digteh.ru


Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться, либо войти на сайт под своим именем.

Обсудить на форуме


На момент добавления Микропрограммирование процессора все ссылки были рабочие.
Все публикации статей, книг и журналов, представлены на этом сайте, исключительно для ознакомления,
авторские права на эти публикации принадлежат авторам статей, книг и издательствам журналов!
Подробно тут | Жалоба

Добавление комментария

Ваше имя:*
E-Mail:*
Текст:
Вопрос:
Решите уравнения x+2x=789
Ответ:*
Введите два слова, показанных на изображении:



Опрос

Ваши предпочтения в TRX


Одинарное преобразование
Двойное преобразование
Прямое преобразование
SDR
Другое
Мне всё равно

Популярные новости
Календарь новостей
«    Сентябрь 2017    »
ПнВтСрЧтПтСбВс
 123
45678910
11121314151617
18192021222324
252627282930