ТЕСЕЙ (архитектура микроконтроллера)/Организация вычислительного процесса

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 18:13, 28 февраля 2016.

Максимальная частота сосбавляет 20 МГц - 40 МГц, следовательно, необходимо рационально создать архитектуру. Взаимосвязывание блоков:

  • Выборка команд (ВК)
  • Декодирование (Д)
  • Выборка операндов (ВО)
  • Исполняемые команды (ИК)
  • Запись результатов (ЗР)

- соответствуют любому МК (а не только КР1878ВЕ1).

  • ВК: адрес ячейки -> формирование сигнала считывания. При этом по фронту сигнала синхронизации просходит получение адреса, я по спаду - считывание. Таким образом, ВК происходит за 1 такт.
  • Д: 1 такт (можно и меньше одного такта, так как схема комбинированная).
  • ВО: 1 такт
  • ИК: 1 такт
  • ЗР: 1 такт

Для повышения скорости можно распараллелить операции и сделать конвеер.

В ТЕСЕЙ трехступенчатый конвеер:

I ВК+Д - 2 такта

II ВО+ИК - 2 такта

III ЗР - 1 такт, так как конвеер, то третья ступень будет 2 такта.

Следовательно, потенциальная производительность - 2 такта на 1 команду.

Рис. 1. Временные диаграммы выполнения команд и совмещение по времени различных фаз выполнения команды.

За единицу времени обрабатываются три команды (ступени) одновременно. На любую команду тратим 6 тактов(в силу линейности выполнения). В среднем 2 такта на команду.

1 такт - холостой, можно было бы обходиться и без него, если была бы двух-портовая память. А так как память одноканальная(а результат пишется в dst), следовательно, требуется еще один такт для разделения во времени обращений к памяти.

Пусть дана последовательность:

ADD %a0, %a1
ADD %a2, %a0
a0 = 2;
a1 = 3;
a2 = 4;

Выборка операндов выполняется до записи результатов, следовательно, происходит чтение "старых" данных (так как новые пишутся на 6 такте). В состав ТЕСЕЙ введен внутренний регистр, сохраняющий результат выполнения команд. Если адреса операндов совпадают с адресов dst, то операнды читаются из теневого регистра(то есть результат предыдущей выполненной команды).

TemplateExampleIcon.svg Пример Пример
В каком случае такая организация приведет к искажению вычислений процессора?
ANL %a0, 3Fh (наложить маску)
MOV %b1, %a (занести в b1)

ОЗУ данных и порты ввода/вывода совмещены, a0 - порты ввода/вывода.

Здесь считываем не значения с порта ввода/вывода, а читаем значения с двумя обнуленными старшими битами.

Решение: вставка между командами NOP.

ANL %a0, 3Fh (наложить маску)
NOP
MOV %b1,%a (занести в b1)


К памяти команд можно получить доступ через регистры IR0 и IR1, оттуда также можно брать операнды.

Рис. 2. Остановка конвеера при использовании косвенной адресации.

Следует как можно меньше использовать константы в ПК, лучше их заносить в ПД. При обращении к ПД требуется фиксация на шине адреса данных с другого регистра, следовательно, одновременное чтение для двух команд - невозможно.

См. также

Подробное описание - Организация вычислительного процесса - стр. 39-43 [1]