Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

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

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

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

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

Набор инструкций [ править ]

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

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

Реализации [ править ]

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

Большинство реализаций основаны на программируемых вентильных массивах (FPGA), что дает возможность повторять дизайн за счет производительности.

К 2018 году OpenRISC 1000 считался стабильным, поэтому ORSoC (владелец OpenCores) начал краудфандинговый проект по созданию экономичной специализированной интегральной схемы (ASIC) для повышения производительности. ORSoC столкнулся с критикой этого со стороны сообщества. [ необходима цитата ] Проект не достиг цели.

По состоянию на февраль 2021 года 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 Design Systems начали использовать OpenRISC в качестве эталонной архитектуры для документирования потоков цепочки инструментов (например, эталонного потока UVM, который теперь вносится в Accellera ). [8]

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

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

OpenRISC с открытым исходным кодом пользуется популярностью в академических кругах и кругах любителей. Например, Стефан Валлентовиц [12] и его команда из Института интегрированных систем Технического университета Мюнхена использовали 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 , musl ( начиная с версии 1.1.4) и glibc были перенесены на процессор. Dynalith предоставляет OpenIDEA, графическую интегрированную среду разработки (IDE), основанную на этой инструментальной цепочке. Проект по переносу LLVM на архитектуру OpenRISC 1000 начался в начале 2012 года [19].

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

Проект OR1K предоставляет имитатор набора команд , or1ksim. Флагманская реализация, OR1200, представляет собой модель уровня передачи регистров (RTL) в Verilog HDL, из которой в ORPSoC может быть построена модель с точностью до цикла на основе SystemC . Высокоскоростная модель 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]

См. Также [ править ]

  • Янтарный (ядро процессора) - ARM-совместимый проект OpenCores
  • Кремниевый фонд с открытым исходным кодом
  • OpenRISC 1200
  • OVPsim , Открытые виртуальные платформы
  • OpenSPARC
  • ЛЕОН
  • Решетка
  • RISC-V

Ссылки [ править ]

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

Внешние ссылки [ править ]

  • Официальный веб-сайт
  • Лицензирование полупроводниковых ядер с открытым исходным кодом , 25 Harvard Journal of Law & Technology 131 (2011) Статья с анализом законодательства, технологий и бизнеса полупроводниковых ядер с открытым исходным кодом
  • Beyond Semiconductor - коммерческая компания по производству полупроводников, основанная разработчиками OpenRISC.
  • Сайт компании Dynalith Systems .
  • Сайт компании Imperas .
  • Сайт компании Flex
  • Сайт компании Jennic
  • Статья Eetimes
  • Учебник OpenRISC
  • jor1k Эмулятор OpenRISC 1000 на JavaScript