Designer | Дамьян Лампрет, с участием сообщества OpenRISC участников |
---|---|
Bits | 32 -бит, 64-bit |
введено | 2000; 20 лет назад (2000) |
Дизайн | RISC |
Кодирование | Фиксированное |
Порядок байтов | Большой; нереализованная заглушка для Little |
Open | Да, без лицензионных отчислений |
Регистры | |
общего назначения | 16 или 32 |
Плавающая точка | Необязательно |
OpenRISC представляет собой проект по разработке серии аппаратного обеспечения с открытым исходным кодом на основе центральных процессоров (ЦП) на установленных принципах компьютера с сокращенным набором команд (RISC). Он включает архитектуру набора команд (ISA) с использованием лицензии с открытым исходным кодом. Это оригинальный флагманский проект сообщества OpenCores .
Первое (и только на 2019 год) описание архитектуры для OpenRISC 1000, описывающее семейство 32-битных и 64-битные процессоры с дополнительной поддержкой арифметики с плавающей запятой и векторной обработки, а реализация этого OpenRISC 1200 была разработан Дамьяном Лампретом в 2000 году, написан на Verilog языке описания оборудования (HDL).
Аппаратный дизайн был выпущен в рамках GNU Lesser General Public Лицензия (LGPL), в то время как модели и встроенное ПО были выпущены под Стандартной общественной лицензией GNU (GPL).
Была разработана эталонная система на чипе (SoC), основанная на OpenRISC 1200, названная OpenRISC Reference Platform System-on-Chip (ORPSoC). Несколько групп продемонстрировали ORPSoC и другие конструкции на основе OR1200, работающие на программируемых вентильных массивах (FPGA), и было выпущено несколько коммерческих производных.
Набор команд достаточно простой Архитектура MIPS -подобная традиционному RISC, использующая архитектуру загрузки-хранения с 3 операндами, с 16 или 32 регистрами общего назначения и фиксированной 32-битной длиной команды. Набор команд в 32- и 64-битных версиях спецификации в основном идентичен, основное различие заключается в ширине регистра (32 или 64 бита) и макете таблицы страниц. Спецификация OpenRISC включает в себя все функции, общие для современных настольных и серверных процессоров: режим супервизора и систему виртуальной памяти, дополнительное управление чтением, записью и выполнением для страниц памяти, а также инструкции для синхронизации и обработки прерываний между несколькими процессорами.
Еще одна примечательная особенность - это богатый набор инструкций с одной инструкцией и несколькими данными (SIMD ), предназначенных для обработки цифрового сигнала.
Большинство реализаций основаны на программируемых вентильных массивах (FPGA), что дает возможность повторять дизайн за счет производительности.
К 2018 году OpenRISC 1000 считался стабильным, поэтому ORSoC (владелец OpenCores) начал проект краудфандинга для создания экономичной интегральной схемы для конкретного приложения (ASIC) для повышения производительности. ORSoC столкнулся с критикой этого со стороны сообщества. Проект не достиг цели.
По состоянию на июль 2020 года ASIC с открытым исходным кодом не производились.
Несколько коммерческих организаций разработали производные от архитектуры OpenRISC 1000, включая ORC32-1208 от ORSoC и BA12, BA14 и BA22 от Beyond Semiconductor. Dynalith Systems предоставляет макетную плату iNCITE FPGA, которая может работать как с OpenRISC 1000, так и с BA12. Flextronics (Flex) и Jennic Limited изготовили OpenRISC как часть специализированной интегральной схемы (ASIC). Samsung использует OpenRISC 1000 в своей системе DTV на кристаллах (SDP83 B-Series, SDP92 C-Series, SDP1001 / SDP1002 D-Series, SDP1103 / SDP1106 E-Series). Сообщается, что Allwinner Technology использует ядро OpenRISC в своем контроллере питания AR100, который является частью SoC на базе A31 ARM.
Cadence Design Systems начали использовать OpenRISC в качестве эталонной архитектуры при документировании потоков цепочки инструментов (для Например, эталонный поток UVM, теперь внесенный в Accellera ).
TechEdSat, первый компьютер Linux на базе архитектуры NASA OpenRISC, запущенный в июле 2012 года и развернутый в октябре 2012 года в Международном космическом пространстве. Станция с аппаратным обеспечением, предоставленным, построенным и протестированным ÅAC Microtec и ÅAC Microtec North America.
OpenRISC с открытым исходным кодом оказался популярным в академических кругах и кругах любителей. Например, Стефан Валлентовиц и его команда из Института интегрированных систем Технического университета Мюнхена использовали OpenRISC в исследованиях архитектуры многоядерных процессоров. Группа пользователей оборудования с открытым исходным кодом () в Великобритании дважды проводить сессии на OpenRISC, в то время как любитель Свен-Оке Андерссон написал подробный блог об OpenRISC для новичков, который вызвал интерес Electronic Engineering Times (EE Times ). Себастьян Маке реализовал jor1k, эмулятор OpenRISC 1000 в JavaScript, под управлением Linux с поддержкой X Window System и Wayland.
Сообщество OpenRISC портировало GNU toolchain на OpenRISC для поддержки разработки на языках программирования C и C ++. Используя эту инструментальную цепочку, библиотеки newlib, uClibc, musl (начиная с версии 1.1.4) и glibc были перенесены в процессор. Dynalith предоставляет OpenIDEA, графическую интегрированную среду разработки (IDE), основанную на этой инструментальной цепочке. Проект по переносу LLVM на архитектуру OpenRISC 1000 начался в начале 2012 года.
GCC 9 выпущен с поддержкой OpenRISC. [1]
Проект OR1K предоставляет имитатор набора команд или 1ksim. Флагманская реализация, OR1200, представляет собой модель уровня передачи регистров (RTL) в Verilog HDL, из которой в ORPSoC может быть построена модель с точностью до цикла на основе SystemC. Высокоскоростная модель OpenRISC 1200 также доступна в рамках инициативы Open Virtual Platforms (OVP) (см. OVPsim ), созданной Imperas.
Основное ядро Linux получило поддержку OpenRISC в версии 3.1. Реализация, объединенная в этом выпуске, представляет собой 32-битное семейство OpenRISC 1000 (or1k). Ранее архитектура OpenRISC 1000 была заменена основным портом.
Несколько операционных систем реального времени (RTOS) были перенесены на OpenRISC, включая RTEMS, FreeRTOS и eCos.
Начиная с версии 1.2, QEMU поддерживает эмуляцию платформ OpenRISC.