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]
ОСРВ
[править |править код]QEMU
[править |править код]QEMU поддерживает архитектуру с версии 1.2[16].
См. также
[править |править код]Примечания
[править |править код]- ↑Damjan Lampret et al., "OpenRISC 1000 Architecture Manual", Rev 1.3, 15 Nov 2007.ТекстАрхивная копия от 18 декабря 2016 наWayback Machine
- ↑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 года.
- ↑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
- ↑OpenCores - Call for OpenRISC ASIC donationsАрхивировано 1 мая 2011 года.
- ↑OpenCores donation FAQ (неопр.). Дата обращения: 20 октября 2013. Архивировано изоригинала 26 апреля 2012 года.
- ↑Samsung Open Source Release CenterАрхивная копия от 24 сентября 2013 наWayback Machine, follow the links → TV & VIDEO → TV → DTV → ETC → OR1200.zip
- ↑Linux-sunxi project community wiki page on theAR100 controllerАрхивная копия от 28 апреля 2021 наWayback Machine. Retrieved on 20 July 2013.
- ↑UVM Reference FlowАрхивная копия от 26 ноября 2011 наWayback Machine, Accellera website (undated).
- ↑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
- ↑Press release 11 October 2012, ÅAC Microtec AB.
- ↑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.
- ↑OpenRISC Emulator In JavaScript Can Run Wayland (неопр.). Дата обращения: 20 октября 2013. Архивировано 19 октября 2013 года.
- ↑project wiki pageАрхивировано 14 октября 2013 года.
- ↑git.kernel.org - linux/kernel/git/torvalds/linux-2.6.git/tree - arch/openrisc/ (неопр.). git.kernel.org. Дата обращения: 17 октября 2011. (недоступная ссылка)
- ↑Linux 3.1 (неопр.). Kernel Newbies. Дата обращения: 17 октября 2011. Архивировано 18 октября 2011 года.
- ↑QEMU Changelog 1.2 (неопр.). Дата обращения: 20 октября 2013. Архивировано 21 октября 2013 года.
Ссылки
[править |править код]- OpenRISC 1200 на сайте сообществаOpenCores
- Руководство по GNU toolchain для OpenRISC
- Beyond SemiconductorАрхивная копия от 17 сентября 2016 наWayback Machine коммерческая компания,бесфабричный производитель полупроводников основанная разработчиками OpenRISC.