Interested Article - OpenRISC

OpenRISC открытый микропроцессор архитектуры RISC с открытым исходным кодом на языке описания аппаратного обеспечения Verilog . Проект создан сообществом OpenCores и распространяется по лицензии GNU LGPL . OpenRISC воплощён аппаратно и успешно производится в виде интегральных микросхем и ПЛИС .

Единственная версия архитектуры, OpenRISC 1000 (or1k), описывает семейство 32- и 64-битных процессоров с опциональными расширениями: поддержкой вычислений над числами с плавающей запятой и поддержкой векторных операций.

Команда разработчиков OpenCores опубликовало первую реализацию, , написанную на языке Verilog . Аппаратная часть проекта имеет лицензию LGPL, модели и прошивки - GPL. Реализация системы-на-кристалле с OpenRISC 1200 называется ORPSoC ( OpenRISC Reference Platform System-on-Chip ). Работоспособность ORPSoC и других вариантов OR1200 была продемонстрирована на FPGA .

На OpenRISC портирован набор инструментов для разработки GNU toolchain , поддерживающий несколько языков программирования , также Linux и μClinux .

OpenRISC поддерживается ядром linux начиная с версии 3.1.

Система команд

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

Спецификации OpenRISC включают также современные возможности: режим супервизора, виртуальную память, возможность установки прав чтение/изменение/исполнение на каждую страницу памяти, атомарные инструкции, обработку межпроцессорных исключений.

ORFP32X — расширение для работы с числами с плавающей запятой (IEEE-754)

По состоянию на октябрь 2011 года имеются некоторые неоднозначности в спецификации 64-битного режима.

Опционально может реализовываться поддержка SIMD операций.

Реализации

Чаще всего реализуется на FPGA (рекомендуется ПЛИС, содержащая более 40 тыс. 4-LUT).

Участники проекта OpenCores собирались выпустить совместимую с OpenRISC 1000 заказную микросхему (ASIC) для получения большей производительности. В 2011 году был начат сбор денег.

Коммерческие варианты

ORSoC предлагает варианты ORC32-1208, — BA12, BA14, BA22.

и использовали OpenRISC ядро как часть собственных ASIC. Samsung использует OpenRISC 1000 в системах-на-кристалле для DTV (SDP83 B-Series, SDP92 C-Series, SDP1001/SDP1002 D-Series, SDP1103/SDP1106 E-Series).

Allwinner Technology использовал OpenRISC в контроллере AR100, который является частью СнК A31 (основной процессор в системе — ARM).

Компания Cadence Design Systems использует OpenRISC в качестве референсной архитектуры в документации (например, для UVM reference flow . )

Экспериментальный компьютер наноспутника , созданный в NASA с использованием OpenRISC, в июле 2012 года был запущен на МКС.

Научные и некоммерческие применения

использует OpenRISC в исследованиях многоядерных систем (руководитель - ).

В 2013 году был представлен проект jor1k - эмулятор OpenRISC 1000, написанный на JavaScript, способный запускать Linux и X Window System либо Wayland .

Средства разработки

Поддерживается GCC для С и C++, библиотекой libc выступает newlib или uClibc . Компания предоставляет OpenIDEA, среду разработки. В 2012 году был начат проект по портированию LLVM для OpenRISC 1000 .

Проект OR1K предоставляет симулятор . Основная реализация, OR1200, может использоваться как RTL модель. Существует SystemC модель ORPSoC с потактовой точностью.

Высокоскоростная модель OpenRISC 1200 продается в виде от компании .

Операционные системы

Linux

Ядро Linux начиная с версии 3.1. (32-битные процессоры OpenRISC 1000 - or1k).

ОСРВ

RTEMS , FreeRTOS , eCos .

QEMU

QEMU поддерживает архитектуру с версии 1.2 .

См. также

Примечания

  1. Damjan Lampret et al., "OpenRISC 1000 Architecture Manual", Rev 1.3, 15 Nov 2007. от 18 декабря 2016 на Wayback Machine
  2. Patrick Pelgrims, Tom Tierens and Dries Driessens, "Basic Custom OpenRISC System Hardware Tutorial: Embedded system design based upon Soft- and Hardcore FPGA’s", De Nayer Instituut, Hogeschool voor Wetenschap & Kunst, 2004. Available online . Дата обращения: 3 марта 2009. Архивировано из 27 ноября 2006 года.
  3. Xiang Li and Lin Zuo, "Open source embedded platform based on OpenRISC and DE2-70", Masters dissertation, SoC program, KTH , Sweden. Available online от 6 октября 2011 на Wayback Machine
  4. 1 мая 2011 года.
  5. . Дата обращения: 20 октября 2013. Архивировано из 26 апреля 2012 года.
  6. от 24 сентября 2013 на Wayback Machine , follow the links → TV & VIDEO → TV → DTV → ETC → OR1200.zip
  7. Linux-sunxi project community wiki page on the от 28 апреля 2021 на Wayback Machine . Retrieved on 20 July 2013.
  8. от 26 ноября 2011 на Wayback Machine , Accellera website (undated).
  9. Post to the openrisc mailing lists at lists.opencores.org and lists.openrisc.net on 8 April 2012 by Fredrick Bruhn, CEO of ÅAC Microtec
  10. Press release 11 October 2012, ÅAC Microtec AB.
  11. (недоступная ссылка) , Stefan Wallentowitz, Thomas Wild and Andreas Herkersdorf. Research poster at the Sixth International Summer School on Advanced Computer Architecture and Compilation for High-Performance and Embedded Systems (ACACES), Terrassa (Barcelona), Spain, 11–17 July 2010.
  12. . Дата обращения: 20 октября 2013. 19 октября 2013 года.
  13. 14 октября 2013 года.
  14. . git.kernel.org. Дата обращения: 17 октября 2011. (недоступная ссылка)
  15. . Kernel Newbies. Дата обращения: 17 октября 2011. 18 октября 2011 года.
  16. . Дата обращения: 20 октября 2013. 21 октября 2013 года.

Ссылки

Источник —

Same as OpenRISC