Библиографическое описание:

Усатюк В. С. Отчет о создании стекового микропроцессора на основе ПЛИС семейства SPARTAN-3E средствами языка аппаратного проектирования VHDL // Молодой ученый. — 2009. — №8. — С. 39-42.

Введение

Современные САПР цифровых систем (ЦС) предоставляют наряду с возможностью схематического проектирования, разработку ЦС при  помощи языков аппаратного проектирования (HDL). К числу достоинств разработки ЦС с использованием языков аппаратного проектирования относят:

ü  сокращение времени цикла разработки и производства конечного устройства;

ü  гибкие возможности устранения возможных ошибок в процессе проектирования;

ü  возможность применения сторонних или ранее разработанных аппаратных модулей;

ü  легкость при формировании сводной документации устройства для стандартов описания по ISO9001 и специфическим внутренним стандартам документирования организации заказчика/разработчика.

Наряду с преимуществами использования вариативных методов проектирования, современные САПР ЦС позволяют, в зависимости от потребностей заказчика, реализовать ЦС на основе устройств на «жесткой логике», интегральной схеме (ИС) не способной менять собственную логическую организацию, или используя программируемые логические интегральные схемы (ПЛИС), ИС с программируемой логической организацией. ПЛИС обладают следующими преимуществами перед ИС на «жесткой логике»:

ü  высокое быстродействие (до 700 МГц);

ü  возможность перепрограммирования в конечном устройстве;

ü  высокая степень интеграции, за счет разработки ЦС на одном кристалле;

ü  возможность малосерийного производства специализированных ЦС.

Таким образом, разработка ЦС с использованием ПЛИС средствами языков аппаратного проектирования актуальна уже сегодня [2].

 

Реализация микропроцессора STACK CPU

Рассмотрим случай разработки  вычислительного устройства (ВУ) на примере cтекового микропроцессора в САПР WEB ISE 11.1 на отладочной плате DIGILENT NEXYS 2 с ПЛИС Spartan 3E-500.

Рис. 1. Блок-схема стекового микропроцессора

 

Стековым процессором называется процессор, в качестве источника операндов и назначения результатов команд, исполняемых арифметически-логическим устройством (АЛУ) используется стек, а не регистр. Стек (англ. stack — стопка) — структура данных с методом доступа к элементам LIFO (англ. Last In — First Out, «последним пришел — первым вышел». При использовании стека машинная команда процессора не требует указания источника операндов и назначения (в канонической стековой архитектуре) в машинной команде, что позволяет применять для программирования стекового микропроцессора 0-операндные команды [1]. Применение 0-операндных команд в сочетании с основными особенностями стековой архитектуры процессора дают возможность[3]:

-             упростить дальнейшее совершенствование ЦС за счет обработки рабочего слова процессора (упаковка, переупорядочивание и пр.), как на аппаратном, так и на программном уровне (компилятор);

-             значительно уменьшить энергопотребление процессора при сохранении высокой производительности (до 40 и более раз), за счет упрощения внутренней архитектуры процессора;

-             увеличить плотность кода, что позволяет значительно уменьшить себестоимость ЦС за счет уменьшения объема требуемого ОЗУ и КЭШа команд.

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

За основу стекового микропроцессора был использован проект процессора MSL16 Philip Leong [4], переданный автору в результате личной переписки на правах любых модификаций. Исходный проект был перепрофилирован с целью более эффективного использования внутренних особенностей семейства ПЛИС Spartan-3e. Был изменен механизм обращения к ОЗУ с целью использования скоростного потенциала синхронного обращения SDRAM. STACK CPU 3 представляет собой процессор:

-             с двумя 16-битными стеками данных DS и адреса RS (возврата);

-             T-регистр содержащий верхний элемент стека;

-             IR-регистр содержащий четыре 4-х битных инструкции для выполнения;

-             PC-регистр счетчик команд содержащий адрес следующей команды на исполнение.

Процедура выполнения команды следующая: извлечение элемента из T-регистра и любого из стеков DS или RS, выполнение операции и возврат результата в T. Структура команд позволяет любые четыре команды (за исключение вызова - CALL) упаковать в одно процессорное 16-битное слово и выполнить. Это позволяет значительно увеличить производительность, уменьшить количество обращений к ОЗУ и увеличить плотность кода (число команд на единицу информации).

Рис. 2. Структурная схема микропроцессора STACK CPU


Таблица 1

Набор инструкций процессора STACK CPU

Мнемоническая форма

Машинный код

Описание

NOP

0000

«Холостая» операция

AND

0001

T&=DS, pop DS

XOR

0010

T=T(XOR) DS, pop DS

+

0011

T+=DS, pop DS

0=

0100

T= -1 if(T==0) else T=0

LIT

0101

Push T to DS and load a value to T

2DIV

0110

T/=2

-

0111

T=DS-T, pop DS

DUP

1000

Push T to DS

DROP

1001

Pop DS

GOTO

1010

Jump to T if T!=0

R>

1011

Pop T to DS, pop RS to T

>R

1100

Pop T to RS, pop DS to T

LOAD(@)

1101

Загрузить из памяти mem[T] в регистр T

SAVE(!)

1110

сохранить в память по адресу mem[T] содержимое T-регистра

SWAP

1111

Поменять местами  содержимое T и DS

CALL

10000

PUSH PC to RS, jump to T

 

Набор команд соответствует принятому в языке Forth, применяемом при программировании встраиваемых систем реального времени и процессоров цифровой обработки, характеризующийся высокой плотностью и переносимостью кода. Пиковая производительность процессора STACKCPU составляет 85.5 миллиона инструкции или 85.5 MIPS.

Сравнение производительности с ранее разработанными автором микропроцессорами NBITCPU 1-2 [2] и  коммерческими процессорами представлено ниже на рис. 3.

Рис. 3. Сравнение пиковой производительности NBitCpu 1-2, Stack CPU

 и других микропроцессоров

В качестве аппаратной основы процессора STACK CPU используется отладочная плата

DIGILENT NEXYS 2 Spartan 3E-500 содержащая:

ü  ПЛИС на 500 тыс. логических вентилей;

ü  16 Мбайт ОЗУ фирмы Micron и 16 Мбайт флэш-памяти Intel;

ü  кварцевый осциллятор на 50 МГц, так же имеется возможность установки стороннего осциллятора;

ü  8 переключателей, четыре 7-ми сегментных светодиодных дисплея, 4 клавиши, USB-порт с максимальной передачей 38 Мбайт/с, PC/2 порт для подключения клавиатуры или мыши, VGA выход с разрешением 640х480 и 256 цветах, один RS232-порт с максимальная скорость приема/передачи 9600 Кбит/с;

ü  разъем Hirose FX-2 для 100 МГц коммутации периферийных элементов;

ü  четыре блока Pmod 2х6 контактов для подключения датчиков и устройств управления шаговыми двигателями.

Наличие развитой системы интерфейсов ввода-вывода у DIGILENT NEXYS 2 позволяет на основе процессора STACK CPU реализовать ЦС специального назначения.

 

Заключение

Таким образом, разработанный в САПР WEB ISE стековый микропроцессор STACK CPU обладает сравнительно большой производительностью, в сочетании с высокой плотностью кода рабочего слова процессора и затратах около 19% логических вентилей кристалла ПЛИС (3 млн. транзисторов). Оценка производительности на отладочной плате NEXYS 2 Spartan 3E-500, подтверждает эффективность разработки ЦС при помощи современных средств аппаратного проектирования, а именно ПЛИС XILINX Spartan 3e-500 и языка аппаратного проектирования VHDL.

 

Литература

  1. Каршенбойм И.Г. Стековые микропроцессоры, или новое – это хорошо забытое новое//Компоненты и технологии. 2003. № 9.
  2. Усатюк В.С. Отчет о создании скалярного микропроцессора с симметричной регистровой архитектурой на основе ПЛИС семейства SPARTAN-3E средствами языка аппаратного проектирования VHDL /В.С. Усатюк // Молодой ученый. ISSN 2072-0297 – 2009. - №6 – стр. 13-16
  3. Koopman P.  Stack Computer: The New Wave. Ellis Horwood, New York, NY, USA, 1989. Режим доступа:  [http://www.cs.cmu.edu/ ~koopman/index.html]
  4. Leong P.H.W.A FPGA Based Forth Microprocessor. Proceedings of the IEEE Symposium on Field-Programmable Custom Computing Machines (FCCM). Napa Valley, California USA, 1998.

Обсуждение

Социальные комментарии Cackle