OpenRISC - OpenRISC

OpenRISC
ДизайнерДамьян Лампрет при участии OpenRISC сообщество члены
Биты32-битный, 64-битный
Введено2000; 20 лет спустя (2000)
ДизайнRISC
КодированиеФиксированный
Порядок байтовБольшой; нереализованная заглушка для Little
ОткрытьДа, и без лицензионных отчислений
Регистры
Общее назначение16 или 32
Плавающая точкаНеобязательный

OpenRISC это проект по разработке серии оборудование с открытым исходным кодом основан центральные процессоры (CPU) на установленном компьютер с сокращенным набором команд (RISC) принципы. Он включает архитектура набора команд (ISA) с использованием лицензия с открытым исходным кодом. Это оригинальный флагманский проект OpenCores сообщество.

Первый (а по состоянию на 2019 г. только) архитектурное описание предназначено для OpenRISC 1000, описывая семейство 32-битный и 64-битный процессоры с дополнительными арифметика с плавающей запятой и векторная обработка поддерживать,[1] и OpenRISC 1200 реализация этого была разработана Дамьяном Лампретом в 2000 году, написана в Verilog язык описания оборудования (HDL).[2][3]

Аппаратный дизайн выпущен под Стандартная общественная лицензия ограниченного применения GNU (LGPL), а модели и прошивки были выпущены под Стандартная общественная лицензия GNU (GPL).

Ссылка система на чипе (SoC) была разработана реализация на базе OpenRISC 1200, получившая название Эталонная платформа OpenRISC System-on-Chip (ORPSoC). Несколько групп продемонстрировали ORPSoC и другие конструкции на основе OR1200, работающие на программируемые вентильные матрицы (ПЛИС),[4][5] и было произведено несколько коммерческих производных.

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

Набор инструкций достаточно простой Архитектура MIPS -подобно традиционному RISC, использующему архитектуру загрузки-хранения с 3 операндами, с 16 или 32 регистрами общего назначения и фиксированной 32-битной длиной инструкции. Набор команд в 32- и 64-битных версиях спецификации в основном идентичен, основное различие заключается в ширине регистра (32 или 64 бита) и макете таблицы страниц. Спецификация OpenRISC включает в себя все функции, общие для современных настольных и серверных процессоров: режим супервизора и систему виртуальной памяти, дополнительное управление чтением, записью и выполнением страниц памяти, а также инструкции для синхронизации и обработки прерываний между несколькими процессорами.

Еще одна примечательная особенность - богатый набор одна инструкция, несколько данных (SIMD ) инструкции, предназначенные для цифровая обработка сигналов.

Реализации

Прототип OpenRISC на Flextronics (Flex) Плата разработки FPGA, работающая под управлением uClinux

Большинство реализаций на программируемые вентильные матрицы (ПЛИС), которые дают возможность повторять дизайн за счет производительности.

К 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).[6] Сообщается, что Allwinner Technology использует ядро ​​OpenRISC в своем контроллере питания AR100, который является частью SoC на базе A31 ARM.[7]

Системы дизайна Cadence начали использовать OpenRISC в качестве эталонной архитектуры при документировании потоков цепочки инструментов (например, эталонный поток UVM, теперь внесенный в Accellera ).[8]

TechEdSat, первый НАСА Компьютер под управлением Linux на базе архитектуры OpenRISC был выпущен в июле 2012 года и в октябре 2012 года был развернут на Международной космической станции с аппаратным обеспечением, предоставленным, построенным и протестированным ÅAC Microtec и ÅAC Microtec North America.[9][10][11]

Академическое и некоммерческое использование

OpenRISC с открытым исходным кодом оказался популярным в академических кругах и кругах любителей. Например, Стефан Валлентовиц[12] и его команда в Институте интегрированных систем на Technische Universität München использовали OpenRISC в исследованиях многоядерный процессор архитектуры.[13]В Группа пользователей оборудования с открытым исходным кодом (OSHUG ) в Великобритании дважды[14][15] проводить сеансы на OpenRISC, а любитель Свен-Оке Андерссон написал подробный блог об OpenRISC для начинающих,[16] что вызвало интерес Electronic Engineering Times (EE Times ).[17]Себастьян Маке реализовал jor1k, эмулятор OpenRISC 1000 в JavaScript, Бег Linux с X Window System и Wayland поддерживать.[18]

Поддержка Toolchain

Сообщество OpenRISC портировало Набор инструментов GNU в OpenRISC для поддержки разработки в языки программирования C и C ++. Используя этот набор инструментов newlib, uClibc, мусл (начиная с версии 1.1.4), и glibc библиотеки были перенесены на процессор. Dynalith предоставляет OpenIDEA, графический интегрированная среда развития (IDE) на основе этой инструментальной цепочки. Проект на портирование LLVM к архитектуре OpenRISC 1000 началось в начале 2012 года.[19]

GCC 9 выпущен с поддержкой OpenRISC. [1]

Проект OR1K обеспечивает симулятор набора команд, ор1ксим. Флагманская реализация OR1200 - это уровень регистрации-передачи (RTL) в Verilog HDL, из которой SystemC основанная на циклической точности модель может быть построена в ORPSoC. Высокоскоростная модель OpenRISC 1200 также доступна в рамках инициативы Open Virtual Platforms (OVP) (см. OVPsim ), созданная Imperas.

Поддержка операционной системы

Поддержка Linux

Основная линия Ядро Linux получил поддержку OpenRISC в версии 3.1.[20]Реализация, объединенная в этом выпуске, представляет собой 32-разрядное семейство OpenRISC 1000 (or1k).[21] Ранее архитектура OpenRISC 1000 была заменена основным портом.

Поддержка RTOS

Несколько операционные системы реального времени (RTOS) были перенесены на OpenRISC, включая RTEMS, FreeRTOS, и eCos.

Поддержка QEMU

Начиная с версии 1.2, QEMU поддерживает эмуляцию платформ OpenRISC.[22]

Смотрите также

Рекомендации

  1. ^ Лампрет, Дамьян; и другие. (2012-12-05). «Руководство по архитектуре OpenRISC 1000, версия архитектуры 1.0, редакция документа 0» (PDF). OpenCores. Получено 2019-03-24.
  2. ^ Кларк, Питер (2000-02-28). «Бесплатное 32-битное ядро ​​процессора попало в Сеть». Electronic Engineering Times (EE Times ). Сан-Франциско, Калифорния, США: AspenCore Media. Получено 2019-03-21.
  3. ^ Кларк, Питер (2000-02-28). «Бесплатное 32-битное ядро ​​процессора появилось в Интернете». Electronic Engineering Times (EE Times ). AspenCore Media. Получено 2019-03-21 - через Дамжана Лампрета.
  4. ^ Пелгримс, Патрик; Тиренс, Том; Дриссенс, Дрис (2004). «Учебное пособие по базовому пользовательскому оборудованию системы OpenRISC: проектирование встроенных систем на основе программных и аппаратных ПЛИС» (PDF). De Nayer Instituut. 1.0. Архивировано из оригинал (PDF) на 2006-11-27. Получено 2009-03-03.
  5. ^ Ли, Сян; Цзо, Линь. Встроенная платформа с открытым исходным кодом на основе OpenRISC и DE2-70 (Мастера). Королевский технологический институт KTH (KTH), Швеция. Архивировано из оригинал на 2011-10-06., Программа SoC
  6. ^ Центр выпусков с открытым исходным кодом Samsung перейдите по ссылкам → ТВ и ВИДЕО → ТВ → DTV → ETC → OR1200.zip
  7. ^ Вики-страница сообщества проекта Linux-sunxi на Контроллер AR100. Проверено 20 июля 2013 г.
  8. ^ Эталонный поток UVM, Сайт Accellera (без даты).
  9. ^ Разместите в списках рассылки openrisc на lists.openrisc.net 8 апреля 2012 г. Фредрик Брюн, генеральный директор ÅAC Microtec.
  10. ^ «Шведский прорыв в космос на спутнике НАСА с электроникой от ÅAC Microtec». ÅAC Microtec (Пресс-релиз). 2012-10-11. Архивировано из оригинал на 2014-01-18. Получено 2018-03-17.
  11. ^ "Svenskt genombrott i rymden på NASA-satellit med elektronik from ÅAC Microtec" [Шведский прорыв в космос на спутнике НАСА с электроникой от ÅAC Microtec] (пресс-релиз) (на шведском языке). 2012-10-11. Получено 2018-03-16 - через Mynewsdesk.[мертвая ссылка ] Альтернативный URL
  12. ^ "Дипломированный инженер Дипломированный инженер Штефан Валлентовиц". 2009–2013 гг. Архивировано из оригинал 13 апреля 2013 г.
  13. ^ Валлентовиц, Стефан; Уайлд, Томас; Херкерсдорф, Андреас. «Совместная оптимизация многоядерной архитектуры и модели программирования (MAPCO)» (PDF) (Исследовательский плакат Шестой Международной летней школы по передовой компьютерной архитектуре и компиляции для высокопроизводительных и встроенных систем (ACACES), 11-17 июля 2010 г.). Террасса (Барселона), Испания. Архивировано из оригинал (PDF) 10 февраля 2013 г.. Получено 2018-10-29.
  14. ^ Чипы (программируемая логика, сохранение компьютера с помощью FPGA, OpenCores и OpenRISC 1000). Встреча OSHUG № 9, Skills Matter, 116-120 Goswell Road, Лондон, 21 апреля 2011 г.
  15. ^ Практическая система на кристалле (программирование собственной SoC FPGA с открытым исходным кодом). Встреча OSHUG № 17, Центр творческого сотрудничества, 16 Актон-стрит, Лондон, 29 марта 2012 г.
  16. ^ Программный процессор OpenRISC 1200 В архиве 2012-05-13 в Wayback Machine. Сообщение в блоге Свена-Оке Андерссона, 2 марта 2012 г.
  17. ^ Максфилд, Клайв (2012-05-03). «Сравнение четырех 32-битных программных ядер процессора». Electronic Engineering Times (EE Times ). Сан-Франциско, Калифорния, США: AspenCore Media. Получено 2019-03-21.
  18. ^ Эмулятор OpenRISC на JavaScript может запускать Wayland
  19. ^ "llvm-or1k". GitHub. 2018-04-06. Получено 2019-03-21.
  20. ^ "git.kernel.org - linux / kernel / git / torvalds / linux-2.6.git / tree - arch / openrisc /". git.kernel.org. Архивировано из оригинал на 2012-07-08. Получено 2011-10-17.
  21. ^ «Linux 3.1». Новички в ядре. Получено 2011-10-17.
  22. ^ Журнал изменений QEMU 1.2

внешняя ссылка