А. Ю. ПАНТЕЛЕЕВ, В. А. ШАЛТЫРЕВ
Научный руководитель ‑ И. И. ШАГУРИН, д. т.н., профессор
Московский инженерно-физический институт (государственный университет)
СТЕКОВЫЙ ПРОЦЕССОР С ИЗМЕНЯЕМЫМ НАБОРОМ ИНСТРУКЦИЙ
В работе описывается микропроцессорное ядро гарвардской архитектуры, спроектированное специально для упрощения разработки процессорных ядер, оптимизированных для выполнения конкретных задач.
Синтезируемые процессоры, реализуемые в ПЛИС, дают возможность конфигурировать набор периферийных устройств под нужды конкретного приложения, но ядро и набор инструкций у таких процессоров всегда остаются неизменными. Далеко не всегда используются все ресурсы процессорного ядра – часто достаточно только некоторого базового подмножества инструкций.
Разработанная структура позволяет эффективно решить проблему исключения избыточных компонентов из состава ядра. Фактически оно лишено декодера команд – каждая инструкция имеет размер 16 бит, в которых записаны непосредственно управляющие коды для устройств внутри процессора. Опционально инструкция может содержать константу длиной 16 или 32 бита. Такого размера инструкции достаточно, так как регистров в обычном понимании процессор не содержит – он имеет стековую структуру. Размер машинного слова составляет 32 бита.
Структура ядра представлена на рис.1. Оно состоит из управляющего блока и исполнительных устройств, которые подключаются по двум шинам данных (А и Б) и набору управляющих сигналов. Каждое устройство имеет свой адрес. За одну инструкцию выполняется одно действие одного исполняющего устройства и при необходимости операция со стеком (запись результата). Всего может быть подключено до 15 устройств, из которых в ядро обязательно входят блок выборки и АЛУ и необязательно – контроллер прерываний и контроллер памяти. Каждое устройство получает пятиразрядный код операции и может выполнять операцию в течение одного или более тактов.
Ядро написано на языке VHDL без низкоуровневых оптимизаций, что позволяет легко вносить в него изменения. Это может делать и специальный компилятор или конфигурационная программа. Подключаемые устройства могут представлять собой, например, внешний контроллер памяти, сдвигатель, умножитель или делитель. Периферийные устройства (контроллеры UART, SPI и т. п.) могут подключаться как к контроллеру ввода-вывода (в этом случае они не занимают ресурсы ядра), так и к центральной шине (проще реализация, выше быстродействие).
Рис. 1. Структура процессорного ядра
При реализации на ПЛИС Xilinx Virtex4 (XC4VLX25-SF363-10) максимальная частота процессорного ядра составляет около 80 МГц. При размещении используется 526 4-входовых логических элементов (около 2,5% от логической емкости кристалла) и 197 D-триггеров (около 1% от общего количества для данной ПЛИС), что позволяет говорить о достаточно небольших размерах данного ядра по сравнению с аналогами.
Список литературы
1. , , Угрюмов систем на микросхемах с программируемой структурой. // БХВ-Петербург, 2006.
2. Микропроцессор своими руками // Компоненты и технологии, 2002, цикл статей.


