OpenRISC

Материал из Википедии — свободной энциклопедии
Перейти к навигацииПерейти к поиску
OpenRISC
РазработчикOpenCores
Разрядность32, 64
АрхитектураRISC
Кодирование СКфиксированная (32 бита)
Открытая?Да, LGPL
Регистры
Всего16 или 32 GPR

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

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

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

На 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) для получения большей производительности.[4] В 2011 году был начат сбор денег.[5]

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

[править |править код]

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

Flextronics International и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, который является частью СнК A31 (основной процессор в системе — ARM).[7]

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

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

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

[править |править код]

Technical University Munich использует OpenRISC в исследованиях многоядерных систем (руководитель -Stefan Wallentowitz).[11]

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

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

[править |править код]

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

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

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

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

[править |править код]

Linux

[править |править код]

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

ОСРВ

[править |править код]

RTEMS,FreeRTOS,eCos.

QEMU

[править |править код]

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

См. также

[править |править код]

Примечания

[править |править код]
  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[1]Архивная копия от 6 октября 2011 наWayback Machine
  4. OpenCores - Call for OpenRISC ASIC donationsАрхивировано 1 мая 2011 года.
  5. OpenCores donation FAQ  (неопр.). Дата обращения: 20 октября 2013. Архивировано изоригинала 26 апреля 2012 года.
  6. Samsung Open Source Release CenterАрхивная копия от 24 сентября 2013 наWayback Machine, follow the links → TV & VIDEO → TV → DTV → ETC → OR1200.zip
  7. Linux-sunxi project community wiki page on theAR100 controllerАрхивная копия от 28 апреля 2021 наWayback Machine. Retrieved on 20 July 2013.
  8. UVM Reference FlowАрхивная копия от 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. Multicore Architecture and Programming Model Co-Optimization (MAPCO) (недоступная ссылка), 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. OpenRISC Emulator In JavaScript Can Run Wayland  (неопр.). Дата обращения: 20 октября 2013. Архивировано 19 октября 2013 года.
  13. project wiki pageАрхивировано 14 октября 2013 года.
  14. git.kernel.org - linux/kernel/git/torvalds/linux-2.6.git/tree - arch/openrisc/  (неопр.). git.kernel.org. Дата обращения: 17 октября 2011. (недоступная ссылка)
  15. Linux 3.1  (неопр.). Kernel Newbies. Дата обращения: 17 октября 2011. Архивировано 18 октября 2011 года.
  16. QEMU Changelog 1.2  (неопр.). Дата обращения: 20 октября 2013. Архивировано 21 октября 2013 года.

Ссылки

[править |править код]
Перейти к шаблону «RISC-based processor architectures»
Процессорные архитектуры на базеRISC-технологий
Источник —https://ru.wikipedia.org/w/index.php?title=OpenRISC&oldid=120667206
Категории:
Скрытые категории: