OpenRISC
Дизайнер | Первоначально Дамьян Лампрет, теперь сообщество OpenRISC (Стаффорд Хорн и т. д.) |
---|---|
Биты | 32-битная , 64-битная |
Представлено | 2000 |
Версия | 1.4 [1] |
Дизайн | РИСК |
Кодирование | Зафиксированный |
Порядок байтов | Большой; нереализованная заглушка для Little |
Размер страницы | 8 КиБ |
Расширения | ОРФПХ32/64, [2] ORVDX64 [3] |
Открыть | Да (LGPL/GPL), следовательно, лицензионные отчисления отсутствуют. |
Регистры | |
общего назначения | 16 или 32 |
Плавающая точка | Необязательный |
OpenRISC — это проект по разработке серии открытым исходным кодом (ЦП) с аппаратных центральных процессоров на основе установленных принципов компьютера с сокращенным набором команд (RISC). Он включает в себя архитектуру набора команд (ISA) с использованием лицензии с открытым исходным кодом . Это оригинальный флагманский проект сообщества OpenCores .
Первый (а по состоянию на 2019 г. [update] только) описание архитектуры предназначено для OpenRISC 1000 («OR1k») и описывает семейство 32-битных и 64-битных процессоров с дополнительной поддержкой арифметики с плавающей запятой и векторной обработки . [4] Реализация этой спецификации в OpenRISC 1200 была разработана Дамьяном Лампретом в 2000 году и написана на Verilog языке описания оборудования (HDL). [5]
Более поздняя реализация mor1kx, имеющая некоторые преимущества по сравнению с OR 1200: [6] был разработан Джулиусом Бакстером и также написан на Verilog.
Кроме того, существуют программные симуляторы, [7] которые реализуют спецификацию OR1k.
Аппаратное обеспечение было выпущено под лицензией GNU Lesser General Public License (LGPL), а модели и встроенное ПО — под лицензией GNU General Public License (GPL).
Была разработана реализация эталонной системы на кристалле (SoC) на основе OpenRISC 1200, получившая название OpenRISC Reference Platform System-on-Chip (ORPSoC). Несколько групп продемонстрировали ORPSoC и другие конструкции на базе OR1200, работающие на программируемых пользователем вентильных матрицах (FPGA). [8] [9] и было произведено несколько коммерческих производных.
Более поздние конструкции SoC, также основанные на реализации процессора OpenRisc 1000, - это minSoC, OpTiMSoC и MiSoC. [10]
Набор инструкций [ править ]
Набор команд представляет собой достаточно простую традиционную RISC-архитектуру, напоминающую MIPS, использующую архитектуру загрузки-сохранения с 3 операндами, с 16 или 32 регистрами общего назначения и фиксированной 32-битной длиной инструкций. Набор команд в 32- и 64-битных версиях спецификации в основном идентичен, основное различие заключается в ширине регистра (32 или 64 бита) и структуре таблицы страниц. Спецификация OpenRISC включает в себя все функции, общие для современных настольных и серверных процессоров: режим супервизора и систему виртуальной памяти, дополнительный контроль чтения, записи и выполнения страниц памяти, а также инструкции для синхронизации и обработки прерываний между несколькими процессорами.
Еще одной примечательной особенностью является богатый набор инструкций с одной командой и несколькими данными ( SIMD ), предназначенных для цифровой обработки сигналов .
Реализации [ править ]

Большинство реализаций основаны на программируемых пользователем вентильных матрицах (FPGA), которые дают возможность повторять проект за счет производительности.
К 2018 году OpenRISC 1000 считался стабильным, поэтому ORSoC (владелец OpenCores) начал краудфандинговый проект по созданию экономичной интегральной схемы для конкретных приложений (ASIC) для повышения производительности. ORSoC подвергся критике за это со стороны сообщества. [ нужна ссылка ] Проект не достиг цели.
По состоянию на май 2024 г. [update]ASIC с открытым исходным кодом не производился.
Коммерческие реализации [ править ]
Несколько коммерческих организаций разработали производные архитектуры OpenRISC 1000, в том числе ORC32-1208 от ORSoC и BA12, BA14 и BA22 от Beyond Semiconductor. плату iNCITE Dynalith Systems предоставляет макетную 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). [11] Сообщается, что Allwinner Technology использует ядро OpenRISC в своем контроллере питания AR100, который является частью SoC A31 на базе ARM. [12]
Cadence Design Systems начала использовать OpenRISC в качестве эталонной архитектуры при документировании потоков цепочки инструментов (например, эталонный поток UVM, который теперь доступен в Accellera ). [13]
TechEdSat , первый Linux-компьютер НАСА на базе архитектуры OpenRISC, запущенный в июле 2012 года и развернутый в октябре 2012 года на Международной космической станции с аппаратным обеспечением, предоставленным, построенным и протестированным компаниями ÅAC Microtec и ÅAC Microtec North America. [14] [15] [16]
некоммерческое использование и Академическое
Будучи открытым исходным кодом, OpenRISC оказался популярным в академических кругах и кругах любителей. Например, Стефан Валлентовиц. [17] и его команда из Института интегрированных систем Мюнхенского технического университета использовали OpenRISC в исследованиях многоядерных процессорных архитектур. [18] Группа пользователей оборудования с открытым исходным кодом ( OSHUG ) в Великобритании дважды [19] [20] проводить сеансы на OpenRISC, а любитель Свен-Оке Андерссон написал подробный блог об OpenRISC для начинающих, [21] вызвавший интерес Electronic Engineering Times ( EE Times ). [22] Себастьян Маке реализовал jor1k, эмулятор OpenRISC 1000 на JavaScript , работающий под управлением Linux с системой X Window и поддержкой Wayland . [23]
Поддержка Toolchain [ править ]
Сообщество OpenRISC портировало набор инструментов GNU на OpenRISC для поддержки разработки на языках программирования C и C++ . С помощью этой цепочки инструментов библиотеки newlib , uClibc , musl (начиная с версии 1.1.4) и glibc были перенесены на процессор. Dynalith предоставляет OpenIDEA, графическую интегрированную среду разработки (IDE), основанную на этой цепочке инструментов. Проект по портированию LLVM на архитектуру OpenRISC 1000 начался в начале 2012 года. [24]
GCC 9 выпущен с поддержкой OpenRISC. [25]
Проект OR1K предоставляет симулятор набора команд , or1ksim. Флагманская реализация, OR1200, представляет собой модель уровня передачи регистров (RTL) в Verilog HDL, на основе которой SystemC в ORPSoC может быть построена модель с точностью до цикла на основе . Высокоскоростная модель OpenRISC 1200 также доступна в рамках инициативы Open Virtual Platforms (OVP) (см. OVPsim ), созданной Imperas.
Поддержка операционной системы [ править ]
Поддержка Linux [ править ]
Основное ядро Linux получило поддержку OpenRISC в версии 3.1. [26] В этом выпуске реализована реализация 32-битного семейства OpenRISC 1000 (или 1k). [27] Бывшая архитектура OpenRISC 1000 была заменена основным портом.
Поддержка ОСРВ [ править ]
несколько операционных систем реального времени На OpenRISC было портировано (RTOS), включая NuttX , RTEMS , FreeRTOS и eCos .
Поддержка QEMU [ править ]
Начиная с версии 1.2, QEMU поддерживает эмуляцию платформ OpenRISC. [28]
См. также [ править ]
- Янтарный (ядро процессора) — проект OpenCores, совместимый с ARM
- Бесплатный и открытый исходный код Silicon Foundation
- OpenRISC 1200
- OVPsim , Открытые виртуальные платформы
- ОпенСПАРК
- ЛЕОН
- РешеткаMico32
- РИСК-V
Ссылки [ править ]
- ^ «Опубликованные версии» . Проверено 28 марта 2021 г.
- ^ «Расширения с плавающей запятой, работающие в 32-битных/64-битных версиях» . Проверено 28 марта 2021 г.
- ^ «Расширения Vector/DSP (SIMD), работающие с 8-, 16-, 32- и 64-битными данными» . Проверено 28 марта 2021 г.
- ^ «Архитектура — OpenRISC» . OpenRisc.io . Проверено 17 апреля 2021 г.
- ^ Кларк, Питер (28 февраля 2000 г.). «Бесплатное 32-битное процессорное ядро попадает в Сеть» . Electronic Engineering Times ( EE Times ) . Сан-Франциско , Калифорния, США: AspenCore Media . Проверено 21 марта 2019 г.
- ^ «Реализации — OpenRISC» . OpenRisc.io . Проверено 17 апреля 2021 г.
- ^ «Реализации — OpenRISC» . OpenRisc.io . Проверено 17 апреля 2021 г.
- ^ Пелгримс, Патрик; Тиренс, Том; Дриссенс, Дрис (2004). «Базовое руководство по аппаратному обеспечению пользовательской системы OpenRISC: проектирование встроенных систем на основе программных и аппаратных FPGA» (PDF) . Институт Де Найера . 1.0. Архивировано из оригинала (PDF) 27 ноября 2006 г. Проверено 3 марта 2009 г.
- ^ Ли, Сян; Цзо, Лин. Встроенная платформа с открытым исходным кодом на основе OpenRISC и DE2-70 (магистратура). KTH Королевский технологический институт (KTH), Швеция. Архивировано из оригинала 6 октября 2011 г. , программа SoC
- ^ «Система-на-кристалле — OpenRISC» . OpenRisc.io . Проверено 17 апреля 2021 г.
- ^ Центр выпусков открытого исходного кода Samsung , перейдите по ссылкам → ТВ И ВИДЕО → ТВ → DTV → ETC → OR1200.zip
- ^ Вики-страница сообщества проекта Linux-sunxi на контроллере AR100 . Проверено 20 июля 2013 г.
- ^ Справочный поток UVM , веб-сайт Accellera (без даты).
- ↑ Сообщение в списках рассылки openrisc на lists.openrisc.net от 8 апреля 2012 г., сделанное Фредриком Брюном, генеральным директором ÅAC Microtec.
- ^ «Шведский прорыв в космосе на спутнике НАСА с электроникой от ÅAC Microtec» . ОАК Микротек (Пресс-релиз). 11 октября 2012 г. Архивировано из оригинала 18 января 2014 г. Проверено 17 марта 2018 г.
- ^ «Шведский прорыв в космосе на спутнике НАСА с электроникой от ÅAC Microtec» [Шведский прорыв в космосе на спутнике НАСА с электроникой от ÅAC Microtec] (Пресс-релиз) (на шведском языке). 11 октября 2012 г. Получено 16 марта 2018 г. - через Mynewsdesk . [ мертвая ссылка ] Все URL
- ^ «Дипл.-инж. Дипл.-вирт.-инж. Стефан Валлентовиц» . 2009–2013 гг. Архивировано из оригинала 13 апреля 2013 г.
- ^ Валлентовиц, Стефан; Уайлд, Томас; Херкерсдорф, Андреас. «Совместная оптимизация моделей многоядерной архитектуры и программирования (MAPCO)» (PDF) (исследовательский плакат Шестой международной летней школы по усовершенствованной компьютерной архитектуре и компиляции для высокопроизводительных и встраиваемых систем (ACACES), 11–17 июля 2010 г.). Террасса (Барселона), Испания. Архивировано из оригинала (PDF) 10 февраля 2013 года . Проверено 29 октября 2018 г.
- ^ Чипы (программируемая логика, сохранение компьютера с помощью FPGA, OpenCores и OpenRISC 1000) . Встреча OSHUG № 9, Skills Matter, 116-120 Goswell Road, Лондон, 21 апреля 2011 г.
- ^ Практическая система на кристалле (запрограммируйте собственную SoC FPGA с открытым исходным кодом) . Встреча ОШУГ № 17, Центр творческого сотрудничества, Актон-стрит, 16, Лондон, 29 марта 2012 г.
- ^ Программный процессор OpenRISC 1200. Архивировано 13 мая 2012 г. на Wayback Machine . Сообщение в блоге Свена-Оке Андерссона, 2 марта 2012 г.
- ^ Максфилд, Клайв (3 мая 2012 г.). «Сравнение четырех 32-битных программных ядер процессора» . Electronic Engineering Times ( EE Times ) . Сан-Франциско , Калифорния, США: AspenCore Media . Проверено 21 марта 2019 г.
- ^ Эмулятор OpenRISC в JavaScript может запускать Wayland
- ^ "llvm-or1k" . Гитхаб . 06.04.2018 . Проверено 21 марта 2019 г.
- ^ «Журнал изменений GCC 9» . ГНУ . Проверено 15 июня 2022 г.
- ^ «git.kernel.org — linux/kernel/git/torvalds/linux-2.6.git/tree — Arch/openrisc/» . git.kernel.org. Архивировано из оригинала 8 июля 2012 г. Проверено 17 октября 2011 г.
- ^ «Линукс 3.1» . Новички в ядре . Проверено 17 октября 2011 г.
- ^ Журнал изменений QEMU 1.2
Внешние ссылки [ править ]
- Официальный сайт
- Лицензирование полупроводниковых сердечников с открытым исходным кодом, 25 Гарвардский журнал права и технологий 131 (2011) Статья, анализирующая закон, технологию и бизнес в области полупроводниковых сердечников с открытым исходным кодом.
- Beyond Semiconductor, Коммерческая полупроводниковая компания основанная разработчиками OpenRISC.
- Dynalith Systems . Сайт компании
- Имперас . Сайт компании
- Flex Сайт компании
- Дженник Сайт компании
- Статья в Eetimes
- Учебное пособие по OpenRISC
- jor1k на GitHub , эмулятор OpenRISC 1000 на JavaScript