Мягкий микропроцессор
Здесь отсутствует информация о трех ядрах OpenPOWER и одном ядре Moxie, оба на уровне RTL. ( июль 2020 г. ) |
Программный микропроцессор (также называемый программным микропроцессором или программным процессором ) — это ядро микропроцессора , которое может быть полностью реализовано с использованием логического синтеза . Его можно реализовать с помощью различных полупроводниковых устройств, содержащих программируемую логику (например, FPGA , CPLD ), включая как высокопроизводительные, так и серийные варианты. [1]
Большинство систем, если они вообще используют программный процессор, используют только один программный процессор. Однако некоторые дизайнеры размещают на FPGA столько программных ядер, сколько поместится. [2] В таких многоядерных системах редко используемые ресурсы могут распределяться между всеми ядрами кластера.
Хотя многие люди помещают в FPGA ровно один программный микропроцессор, достаточно большая FPGA может содержать два или более программных микропроцессора, в результате чего получается многоядерный процессор . Количество программных процессоров на одной ПЛИС ограничено только размером ПЛИС. [3] Некоторые люди помещают десятки или сотни программных микропроцессоров в одну FPGA. [4] [5] [6] [7] [8] Это один из способов реализации массового параллелизма в вычислениях, который также может быть применен к вычислениям в памяти .
Программный микропроцессор и окружающие его периферийные устройства, реализованные в FPGA, менее уязвимы к устареванию, чем дискретный процессор. [9] [10] [11]
Основное сравнение
[ редактировать ]Процессор | Разработчик | Открытый исходный код | Автобусное сопровождение | Примечания | Проект дома | Язык описания |
---|---|---|---|---|---|---|
на основе ARM архитектуры набора команд | ||||||
Янтарь | Конор Сантифорт | LGPLv2.1 | Поперечный рычаг | ARMv2a 3-этапный или 5-этапный конвейер | Страница проекта на Opencores | Верилог |
Кортекс-М1 | РУКА | Нет | [6] | 70–200 МГц, 32-битный RISC | [7] | Верилог |
на основе AVR архитектуры набора команд | ||||||
Извини | Себастьян Бурдодук | Да | Прямой SRAM | Atmel AVR -совместимый 8-битный RISC | Страница проекта на Opencores | Верилог |
ПАВР | Дору Катлера | Да | Atmel AVR -совместимый 8-битный RISC | Страница проекта на Opencores | VHDL | |
софтавркор | Andras Pal | Да | Стандартные шины AVR (ввод-вывод, связанный с ядром, синхронное SRAM, синхронное ПЗУ программ) | Atmel AVR -совместимый 8-битный RISC (до AVR5), периферийные устройства и функции SoC включены | Страница проекта на Opencores | Верилог |
на основе MicroBlaze архитектуры набора команд | ||||||
АЕМБ | Шон Тан | Да | Поперечный рычаг | Совместимость с MicroBlaze EDK 3.2 | АЕМБ | Верилог |
МикроБлейз | Ксилинкс | Нет | ПЛБ, ОПБ, ФСЛ, ЛМБ, AXI4 | Xilinx MicroBlaze | ||
OpenFire | Лаборатория СКК Технологического института Вирджинии | Да | ОПБ, ФСЛ | Двоичная совместимость с MicroBlaze | [8] [12] | Верилог |
СекретБлейз | LIRMM, Университет Монпелье / CNRS | Да | Поперечный рычаг | MicroBlaze ISA, VHDL | СекретБлейз | VHDL |
на основе MCS-51 архитектуры набора команд | ||||||
MCL51 | Микрокор Лаборатории | Да | Сверхкомпактное ядро 8051 на базе микросеквенатора | 312 LUT Artix-7. Четырехъядерная версия 8051 имеет 1227 LUT. | MCL51 ядро | |
ТСК51/52 | Высокий | Без лицензионных отчислений | Поперечный рычаг / Intel 8051 | Совместимость с 8-битным набором инструкций Intel 8051 , альтернатива с меньшим тактовым циклом | Встроенное проектирование на Altium Wiki | |
на основе MIPS архитектуры набора команд | ||||||
ДАВАТЬ | Кембриджский университет | БСД | МИПС | Страница проекта | Блюспек | |
из Доссмы | Рене Досс | CC BY-NC 3.0, за исключением того, что коммерческим заявителям придется платить лицензионный сбор . | Конвейерный автобус | Этапы конвейера набора команд MIPS I | из Доссмы | VHDL |
ТСК3000А | Высокий | Без лицензионных отчислений | Поперечный рычаг | 32-битный процессор RISC в стиле R3000 с модифицированной гарвардской архитектурой | Встроенное проектирование на Altium Wiki | |
на основе PicoBlaze архитектуры набора команд | ||||||
ПакоБлейз | Пабло Блейер | Да | Совместимость с процессорами PicoBlaze. | ПакоБлейз | Верилог | |
ПикоБлейз | Ксилинкс | Нет | Ксилинкс ПикоБлейз | VHDL, Верилог | ||
на основе RISC-V архитектуры набора команд | ||||||
f32c | Университет Загреба | БСД | Акси, SDRAM, SRAM | 32-разрядная версия, подмножества RISC-V/MIPS ISA (переназначаемая), набор инструментов GCC | f32c | VHDL |
НЕОРВ32 | Стефан Нолтинг | БСД | Поперечный рычаг b4, AXI4 | rv32[i/e] [m] [a] [c] [b] [u] [Zfinx] [Zicsr] [Zifencei], совместимость с RISC-V, доступны процессор и SoC, широкие возможности настройки, набор инструментов GCC | GitHub OpenCores | VHDL |
Вексрискв | Спинной ЛПВП | Да | AXI4 / Авалон | 32-битный, RISC-V, до 340 МГц на Artix 7. До 1,44 DMIPS/МГц. | https://github.com/SpinalHDL/VexRiscv | VHDLВилог (Спинальный ЛПВП) |
на основе SPARC архитектуры набора команд | ||||||
ЛЕОН2(-ФТ) | ЧТО | Да | АМБА2 | СПАРК V8 | ЧТО | VHDL |
ЛЕОН3/4 | Аэрофлекс Гайслер | Да | АМБА2 | СПАРК V8 | Аэрофлекс Гайслер | VHDL |
ОпенПитон | Принстонская параллельная группа | Да | Многоядерный SPARC V9 | ОпенПитон | Верилог | |
ОпенСПАРК Т1 | Солнце | Да | 64-битная | OpenSPARC.net | Верилог | |
Такус/ТРУБА5 | Темлиб | Да | Конвейерный автобус | СПАРК V8 | ТИХИЙ | VHDL |
на основе x86 архитектуры набора команд | ||||||
ЦП86 | ХТ-Лаб | Да | 8088-совместимый процессор в VHDL | процессор86 | VHDL | |
MCL86 | Микрокор Лаборатории | Да | Предоставлено 8088 БИУ. Другие легко создать. | Точный цикл 8088/8086 реализован с помощью микросеквенатора. Использование Kintex-7 менее 2%. | Ядро MCL86 | |
s80x86 | Острова Джейми | лицензия GPLv3 | Обычай | Ядро GPLv3, совместимое с 80186 | s80x86 | СистемаVerilog |
Наборы | Зевс Гомес Мармолехо | Да | Поперечный рычаг | клон ПК x86 | Наборы | Верилог |
ао486 | Александр Осман | 3-пункт BSD | Авалон | i486 SX-совместимое ядро | ао486 | Верилог |
на основе PowerPC/Power архитектуры набора команд | ||||||
PowerPC 405S | ИБМ | Нет | CoreConnect | 32-битный PowerPC v.2.03 Книга E | ИБМ | Верилог |
PowerPC 440S | ИБМ | Нет | CoreConnect | 32-битный PowerPC v.2.03 Книга E | ИБМ | Верилог |
PowerPC 470S | ИБМ | Нет | CoreConnect | 32-битный PowerPC v.2.05 Книга E | ИБМ | Верилог |
Микроватт | IBM/OpenPOWER | CC-BY 4.0 | Поперечный рычаг | 64-битная PowerISA 3.0 — доказательство концепции | Микроватт @ Github | VHDL |
Чизельватт | IBM/OpenPOWER | CC-BY 4.0 | Поперечный рычаг | 64-битная PowerISA 3.0 | Чизельватт @ Github | Долото |
Бесплатный SOC | Libre-SoC.org | БСД/LGPLv2+ | Поперечный рычаг | 64-битная PowerISA 3.0. Реализация CPU/GPU/VPU и пользовательские векторные инструкции | Libre-SoC.org | Python/nMigen |
А2И | IBM/OpenPOWER | CC-BY 4.0 | Пользовательский PBus | 64-битный PowerPC 2.6 Book E. В порядке ядра | A2I @ Github | VHDL |
А2О | IBM/OpenPOWER | CC-BY 4.0 | Пользовательский PBus | 64-битный PowerPC 2.7 Book E. Вышло из строя ядро | A2O @ Github | Верилог |
Другие архитектуры | ||||||
АРК | ARC International , Синопсис | Нет | 16/32/64-битный ISA RISC | DesignWare ARC | Верилог | |
ЭРИК5 | Энтнер Электроникс | Нет | 9-битный RISC, очень маленький размер, программируется на языке C. | ERIC5. Архивировано 5 марта 2016 г. в Wayback Machine. | VHDL | |
Процессор H2 | Ричард Джеймс Хоу | С | Обычай | 16-битная стековая машина, предназначенная для прямого выполнения Форта, небольшая | Процессор H2 | VHDL |
Мгновенный SoC | Ядра ПЛИС | Нет | Обычай | 32-битное расширение RISC-V M, SoC, определенное C++ | Мгновенный SoC | VHDL |
JOP | Мартин Шоберл | Да | SimpCon / Поперечный рычаг (расширение) | Стек-ориентированная поддержка жесткого режима реального времени, выполнение байт-кода Java. прямое | Ага | VHDL |
ЛатексMico8 | Решетка | Да | Поперечный рычаг | ЛатексMico8 | Верилог | |
РешеткаMico32 | Решетка | Да | Поперечный рычаг | РешеткаMico32 | Верилог | |
LXP32 | Алексей Кузнецов | С | Поперечный рычаг | 32-битный трехэтапный конвейер, файл регистров на основе блочной оперативной памяти. | lxp32 | VHDL |
MCL65 | Микрокор Лаборатории | Да | Сверхкомпактное ядро 6502 на базе микросеквенатора | 252 ЛУТа «Спартан-7». Тактовый цикл-точный. | MCL65 ядро | |
МРИСЦ32-А1 | Маркус Гилнард | Да | Поперечный рычаг , B4/конвейерный | 32-битный RISC/векторный процессор, реализующий MRISC32 ISA | МРИСК32 | VHDL |
НЕО430 | Стефан Нолтинг | Да | Поперечный рычаг (Авалон, AXI4-Lite) | 16-битный MSP430, совместимый с ISA, очень маленький размер, множество периферийных устройств, широкие возможности настройки | НЕО430 | VHDL |
Ниос , Ниос II | Другой | Нет | Авалон | Другой Ниос II | Верилог | |
OpenRISC | Открытые ядра | Да | Поперечный рычаг | 32-битный; сделано в ASIC, Actel, Altera, Xilinx FPGA. | [9] | Верилог |
СпартанскийMC | ТУ Дармштадта / ТУ Дрездена | Да | Пользовательский ( поддержка AXI в разработке) | 18-битная ISA (поддержка GNU Binutils/GCC в разработке) | СпартанскийMC | Верилог |
СИНПИК12 | Мигель Анхель Ахо Пелайо | С | Совместимость с PIC12F, программа синтезируется в вентилях | nbee.es | VHDL | |
xr16 | Ян Грей | Нет | Абстрактная шина XSOC | 16-битный RISC-процессор и SoC представлены в журнале Circuit Cellar Magazine № 116-118. | XSOC/xr16 | Схематическое изображение |
ДЖАСЕП | Янн Гидон | AGPLv3 | Прямой SRAM | 16 или 32 бита, RTL в VHDL и asm в JS , подмножество микроконтроллера: готово | yasep.org ( Firefox требуется ) | VHDL |
ZipЦП | Технология Гиссельквиста | лицензия GPLv3 | Поперечный рычаг, B4/конвейерный | 32-битный ЦП, ориентированный на минимальное использование ресурсов FPGA | zipcpu.com | Верилог |
ЗПУ | Жилин А.С. | Да | Поперечный рычаг | ЦП на основе стека, настраиваемый 16/32-битный канал передачи данных, eCos поддержка | Зилин ЦП | VHDL |
RISC5 | Никлаус Вирт | Да | Обычай | Запуск полной графической системы Оберон, включая редактор и компилятор. Программное обеспечение можно разрабатывать и запускать на одной и той же плате FPGA. | www.projectoberon.com/ | Верилог |
См. также
[ редактировать ]- Система на кристалле (SoC)
- Сеть на кристалле (NoC)
- Реконфигурируемые вычисления
- VHDL
- Верилог
- Аппаратное ускорение
Ссылки
[ редактировать ]- ^ http://www.dailycircuitry.com/2011/10/zet-soft-core-running-windows-30.html. Архивировано 13 октября 2018 г. на Wayback Machine. «Программное ядро Zet под управлением Windows 3.0», Эндрю Фелч, 2011 г.
- ^ «Embedded.com — Архитектуры FPGA от «А» до «Я»: Часть 2» . Архивировано из оригинала 8 октября 2007 г. Проверено 18 августа 2012 г. «Архитектура FPGA от А до Я», Клайв Максфилд, 2006 г.
- ^ MicroBlaze Soft Processor: Часто задаваемые вопросы, заархивировано 27 октября 2011 г. на Wayback Machine.
- ^ Иштван Вассани. «Реализация процессорных массивов на ПЛИС». 1998 год [1]
- ^ Чжокун ВАН и Омар ХАММАМИ. «Проектирование 24-процессорной системы на кристалле FPGA с сетью на кристалле». [2]
- ^ Джон Кент. «Массив Micro16 — простой массив ЦП» [3]
- ^ Кит Итон. «Достигнута 1000-ядерная ЦП: ваш будущий настольный компьютер станет суперкомпьютером». 2011. [4]
- ^ «Ученые втиснули более 1000 ядер в один чип». 2011. [5] Архивировано 5 марта 2012 г. в Wayback Machine.
- ^ Джо ДеЛаэр. « 7 основных причин заменить микроконтроллер на FPGA MAX 10» » (PDF) .
- ^ Джон Свон; Томек Кшизак. (2008). " "Использование FPGA во избежание устаревания микропроцессоров" " . Архивировано из оригинала 13 октября 2016 г.
- ^ Персонал (03 февраля 2010 г.). «IP-процессор FPGA должен поддерживаться» . Еженедельник электроники . Проверено 3 апреля 2019 г.
- ^ «Обзор :: Ядро процессора OpenFire :: OpenCores» .
Внешние ссылки
[ редактировать ]- Программные ядра ЦП для FPGA
- Детальное сравнение 12 программных микропроцессоров
- Новости процессоров FPGA
- Сайт процессора Freedom
- Ядра микропроцессора на Opencores.org (разверните вкладку «Процессор»)
- 32-битный RISC-микропроцессор NikTech MANIK.