Jump to content

ЗПУ (процессор)

(Перенаправлено с ЗПУ (микропроцессора) )

ZPU разработанный — это микропроцессора, стек норвежской компанией Zylin AS для запуска управляющего кода в электронных системах, которые включают программируемую вентильную матрицу (FPGA). [1]

ZPU — это относительно новая стековая машина с небольшой экономической нишей, и у нее растет число пользователей и реализаций. [ нужна ссылка ] Он был разработан так, чтобы требовать очень небольшого количества электронной логики, что делает больше электронной логики доступной для других целей в FPGA. Чтобы сделать его простым в использовании, он имеет порт из коллекции компиляторов GNU . Это значительно упрощает применение, чем процессоры без компиляторов. Жертвуя скоростью в обмен на небольшой размер, он сохраняет промежуточные результаты вычислений в памяти, в выталкивающем стеке, а не в регистрах. [1]

Zylin Corp. сделала ZPU открытым исходным кодом в 2008 году. [1]

Использование

[ редактировать ]

Многие электронные проекты включают электронную логику в FPGA. Иметь микропроцессор расточительно, поэтому добавление ЦП к электронной логике FPGA является обычным делом. Часто можно было бы использовать меньшую и менее дорогую FPGA, если бы только ЦП использовал меньше ресурсов. Это именно та ситуация, для решения которой был разработан ЗПУ.

ZPU предназначен для решения различных задач системы, которые лучше всего решаются программным обеспечением, например, пользовательским интерфейсом. ЗПУ очень медленный, но его небольшой размер позволяет разместить в ПЛИС любой необходимый высокоскоростной алгоритм.

Другая проблема заключается в том, что большинство процессоров для FPGA имеют закрытый исходный код и доступны только от конкретного производителя FPGA. Иногда проект должен иметь дизайн, который может быть широко распространен, для проверок безопасности, использования в образовательных целях или по другим причинам. Лицензии на эти проприетарные процессоры могут предотвратить такое использование. ZPU имеет открытый исходный код.

Некоторым проектам нужен код, который должен быть небольшим, но выполняться на процессоре, который по своей природе имеет больший код. В качестве альтернативы проект может извлечь выгоду из широкого выбора кода, компиляторов и инструментов отладки из коллекции компиляторов GNU. В этих случаях можно написать эмулятор для реализации набора инструкций ZPU на целевом ЦП, а компиляторы ZPU можно использовать для создания кода. В результате система работает медленно, но упаковывает код в меньший объем памяти, чем многие процессоры, и позволяет проекту использовать широкий спектр компиляторов и кода. [2]

Особенности конструкции

[ редактировать ]

ZPU был разработан специально для минимизации количества электронной логики. Он имеет минимальный набор инструкций, но может быть закодирован для коллекции компиляторов GNU. Это также минимизирует количество регистров, которые должны быть в FPGA, минимизируя количество триггеров. Вместо регистров промежуточные результаты хранятся в стеке, в памяти. [1]

Он также имеет небольшой код, позволяющий экономить память. Машинные инструкции стека не обязательно должны содержать идентификаторы регистров, поэтому код ZPU меньше, чем у других процессоров RISC, и, как говорят, ему требуется только около 80% пространства ARM Holdings Thumb2 . [1] Например, непосредственный знак со знаком помогает ZPU хранить 32-битное значение максимум в 5 байтах пространства команд и всего в одном. Большинству процессоров RISC требуется не менее восьми байтов.

Наконец, около 2/3 его инструкций могут быть эмулированы прошивкой, реализованной с использованием другой 1/3 «обязательных» инструкций. Хотя результат получается очень медленным, для полученного ЦП может потребоваться всего 446 справочных таблиц (показатель сложности FPGA, примерно эквивалентный 1700 электронным логическим элементам).

ZPU имеет вектор сброса, состоящий из 32 байтов кодового пространства, начиная с нулевой позиции. Он также имеет одно прерывание, чувствительное к фронту, с вектором, состоящим из 32 байтов кодового пространства, начиная с адреса 32. Каждый из векторов со 2 по 63 имеет по 32 байта пространства, но зарезервировано для кода для эмуляции инструкций с 33 по 63.

Базовый ZPU имеет 32-битный путь передачи данных. У ZPU также есть вариант с трактом данных шириной 16 бит, чтобы сэкономить еще больше логики.

Инструменты и ресурсы

[ редактировать ]

В ZPU имеется хорошо протестированный порт коллекции компиляторов GNU. [1] Энтузиасты и инженеры прошивок портировали ECos , [1] FreeRTOS [3] и микроКлинукс . [4] По крайней мере одна группа энтузиастов скопировала популярную среду разработки Arduino и адаптировала ее к ZPU. [5]

Сейчас существует несколько моделей ядра ZPU. Помимо оригинальных ядер Zylin, [1] есть еще ядра ZPUino, [5] и ядро ​​ZPUFlex. [6] Ядро Zylin спроектировано с учетом минимального размера FPGA и включает 16-битную версию. ZPUino имеет практические улучшения в скорости, может заменять эмулируемые инструкции аппаратными средствами и встроен в структуру системы на кристалле. ZPUFlex предназначен для использования блоков внешней памяти и может заменять эмулируемые инструкции аппаратными средствами.

Академические проекты включают исследования и улучшения энергоэффективности, [7] и исследования надежности. [8]

Для повышения скорости большинство разработчиков реализовали эмулированные инструкции и добавили кэш стека. [5] [6] [7] Помимо этого, один из разработчиков заявил, что двухстековая архитектура позволит использовать конвейерную обработку (т. е. повысить скорость до одной инструкции за такт), но это также может потребовать изменений в компиляторе. [7]

Один разработчик сократил энергопотребление на 46 % за счет кэша стека и автоматического включения тактового стробирования. [7] Тогда энергопотребление было примерно эквивалентно небольшому ядру Amber с открытым исходным кодом , реализующему архитектуру ARM v2a.

Частями ZPU, отказоустойчивость которых наиболее полезна, являются адресная шина, указатель стека и программный счетчик. [8]

Набор инструкций

[ редактировать ]

«TOS» — это аббревиатура от «Top Of Stack». «NOS» — это аббревиатура от «Next to the top Of Stack».

Требуемый набор инструкций ZPU
Имя Двоичный Описание
ТОЧКА БРЕЙКПОИНТА 00000000Остановите процессор и/или перейдите к отладчику.
IM_x 1xxxxxxxОтправьте или добавьте подписанный 7-битный файл непосредственно в TOS.
МАГАЗИН_x 010xxxxxИзвлеките TOS и сохраните его в стек со смещением сверху.
LOADSP_x 011xxxxxПолучите значение, индексированное в стеке, и поместите его в TOS.
ЭМУЛЯТИРОВАТЬ_x 001xxxxxЭмулируйте инструкцию с кодом в векторе x.
ADDSP_x 0001xxxxПолучите значение из индексированного в стеке значения и добавьте его в TOS.
ПОППК 00000100Извлеките адрес из TOS и сохраните его на ПК.
НАГРУЗКА 00001000Введите адрес и отправьте загруженное значение памяти в TOS.
МАГАЗИН 00001100Сохраните NOS в памяти, на которую указывает TOS. Поп оба.
ПУШСП 00000010Вставьте текущий SP в TOS.
ПОПСП 00001101Вставьте TOS и сохраните его в SP.
ДОБАВЛЯТЬ 00000101Целочисленное сложение TOS и NOS.
И 00000110Побитовое И TOS и NOS.
ИЛИ 00000111Побитовое ИЛИ TOS и NOS.
НЕТ 00001001Побитовое НЕ TOS.
ПОДБРОСИТЬ 00001010Измените порядок битов TOS.
НЕТ 00001011Нет-Операция. (Обычно используется для циклов задержки или таблиц кода.)

Кодовые точки с 33 по 63 могут быть эмулированы кодом в векторах со 2 по 32: LOADH и STOREH (16-битный доступ к памяти), LESSTHAN (сравнение устанавливается 1 для истинного, 0 для ложного), LESSTHANOREQUAL, ULESSTHAN, ULESSTHANOREQUAL, SWAP (TOS с NOS), MULT, LSHIFTRIGHT, ASHIFTLEFT, ASHIFRIGHT, CALL, EQ, NEQ, NEG, SUB, XOR, LOADB и STOREB (8-битный доступ к памяти), DIV, MOD, EQBRANCH, NEQBRANCH, POPPCREL, CONFIG, PUSHPC, SYSCALL, ПУШСПАДД, ПОЛУМУЛЬТ, КАЛЛПКРЕЛ

  1. ^ Перейти обратно: а б с д и ж г час «ZPU — самый маленький в мире 32-битный процессор с набором инструментов GCC: обзор» . opencores.org, Zylin Corp. Проверено 7 февраля 2015 г.
  2. ^ «ZOG — процессорное ядро ​​ZPU для Propeller с GNU C + Fortran» . Параллакс Форум . Параллакс . Проверено 6 сентября 2019 г.
  3. ^ Энтони, Энтони. "ZPUino-HDL/zpu/sw/freertos/" . Гитхаб . Энтони Антон Получено 7 февраля.
  4. ^ Лопес, Альваро. «alvieboy/Linux» . Гитхаб . Альваро Лопес . Проверено 7 февраля 2015 г.
  5. ^ Перейти обратно: а б с Лопес, Альваро. «ЗПУино» . www.alvie.com . Проверено 7 февраля 2015 г.
  6. ^ Перейти обратно: а б АМР. «ЗПУ Флекс» . Ретро Рамблингс . Проверено 9 февраля 2015 г.
  7. ^ Перейти обратно: а б с д Эриксен, Штейн Ове. «Ядро микроконтроллера малой мощности» . Открытие НТНУ . Норвежский университет науки и технологий . Проверено 9 февраля 2015 г.
  8. ^ Перейти обратно: а б Зандрахими, М. (2010). «Анализ последствий и распространения ошибок в ZPU: самый маленький в мире 32-битный процессор». 2-й Азиатский симпозиум по качественному электронному проектированию (ASQED) . IEEE. стр. 308–313. дои : 10.1109/ASQED.2010.5548320 . ISBN  978-1-4244-7809-5 . S2CID   20045721 .
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 0f076f9a16a57ee76924570472d7a2c5__1691597040
URL1:https://arc.ask3.ru/arc/aa/0f/c5/0f076f9a16a57ee76924570472d7a2c5.html
Заголовок, (Title) документа по адресу, URL1:
ZPU (processor) - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)