OpenRISC

С Википедије, слободне енциклопедије
OpenRISC
ДизајнерОригинално Дамјан Лампрет, сада OpenRISC заједница[1] (Stafford Horne etc.)
Битови32-bit, 64-bit
Уведен2000. год.; пре 24 године (2000)
Version1.3[2]
ДизајнRISC
EncodingПодешен
ЕндианBig endian. Little endian
Page size8 KiB
ExtensionsORFPX32/64,[3] ORVDX64[4]
OpenДа (LGPL / GPL), од сада без ауторског хонорара
Регистри
Општа намена16 or 32
Floating pointOptional

OpenRISC је пројекат за развој низа централних процесорских јединица заснованих на хардверу отвореног кода на успостављеним принципима рачунара са смањеним скупом инструкција ( eng. RISC). Укључује архитектуру скупа инструкција која користи лиценцу отвореног кода ("open-source" лиценца). То је оригинални водећи пројекат заједнице OpenCores .

Први (и од 2019 једини) архитектонски опис је за OpenRISC 1000 ("OR1k"), који описује породицу 32-битних и 64-битних процесора са опционалном подршком за аритметику са покретним зарезом и подршком за векторску обраду. [5] Имплементацију ове спецификације дизајнирао је Дамјан Лампрет 2000. године, написану на језику за опис хардвера Верилог.

Каснију mor1kx имплементацију,[6] која има неке предности у поређењу са OR 1200,[7] дизајнирао је Јулиус Бактер, а такође је написана у Верилогу.

Поред тога постоје софтверски симулатори,[8] који примењују OR1k спецификацију.

Дизајн хардвера објављен је под GNU Lesser General Public License (LGPL), односно Open Hardware Design License (OHDL) лиценцом, док су модели и фирмвер објављени под ГНУ-овом општом јавном лиценцом.

Развијен је референтни систем на чипу (енг. system on a chip SoC) имплементиран на основу OpenRISC 1200, назван OpenRISC Reference Platform System-on-Chip (ORPSoC). Неколико група је демонстрирало ORPSoC и друге дизајне засноване на OR1200-у који раде на FPGA-овима, [9][10] а произведено је неколико комерцијалних деривата.

Каснији SoC дизајни, такође засновани на имплементацији процесора OpenRisc 1000 CPU, су FuseSoC, minSoC, OpTiMSoC and MiSoC. [11]

Упутства[уреди | уреди извор]

Скуп инструкција је разумљиво једноставанa MIPS архитектура (енгл. Microprocessor without Interlocked Pipelined Stages) - налик традиционалном RISC-у који користи 3-операндну архитектуру складишта терета, са 16 или 32 регистра опште намене и фиксном дужином инструкције од 32 бита. Скуп инструкција је углавном идентичан између 32-битние и 64-битие верзије спецификације, главна разлика је ширина регистра (32 или 64 бита) и изглед табеле страница. Спецификација OpenRISC-a укључује све карактеристике заједничке за савремене десктоп процесоре и серверске процесоре: режим надзора и систем виртуелне меморије, опциону контролу читања, писања и извршавања за меморијске странице и упутства за синхронизацију и руковање прекидима између више процесора.

Још једна значајна карактеристика јесте богат скуп појединачних инструкција, више података (енгл. SIMD) упутстава намењених дигиталној обради сигнала .

Имплементације[уреди | уреди извор]

OpenRISC прототип на Flextronics (Flex) FPGA развојни одбор, ради на uClinux

Већина имплементација је на FPGA-у, што даје могућност итерације дизајна по цени перформанси.

До 2018. године је OpenRISC 1000 се сматрао стабилним, тако да је ORSoC (власник OpenCores-а) почео групно финансирани (енг. crowdfunding) пројекат за изградњу економичног интегрисаног кола специфичне намене или ASIC ( od енгл. Application-specific integrated circuit) ради побољшања перформанси. ORSoC се због тога суочио са критикама из заједнице. Пројекат није постигао циљ.

Комерцијалне имплементације[уреди | уреди извор]

Неколико комерцијалних организација развило је деривате архитектуре OpenRISC 1000-а, укључујући ORC32-1208 ORSoC-а и BA12, BA14 и BA22 Beyond Semiconductor-а. Dynalith Systems нуди iNCITE FPGA прототипску плочу, која може покретати OpenRISC 1000 и BA12. Флектроникс (енг. Flextronics) и Jennic Limited су произвели OpenRISC као део интегрисаног кола специфичног специфичне намене (ASIC). Самсунг (енг. Samsung) користи OpenRISC 1000 у својим DTV системима на чиповима (SDP83 B-Series, SDP92 C-Series, SDP1001/SDP1002 D-Series, SDP1103/SDP1106 E-Series). [12] Извештено је да Аллвиннер Тецхнологи (енг. Allwinner Technology) користи OpenRISC језгро у свом AR100 контролеру напајања, који чини део SoC-а заснованог на A31 ARM-у. [13]

Cadence Design Systems су почели да користе OpenRISC као референтну архитектуру у документовању токова ланаца алата (на пример, UVM референтни ток, који је сада допринео Accellera-и ).[14]

TechEdSat, прва НАСА OpenRISC архитектура заснованa на Линукс рачунару, лансиран је у јулу 2012. године, а искоришћен у октобру 2012. године на Међународној свемирској станици са хардвером који су обезбедили, изградили и тестирали ÅAC Microtec и ÅAC Microtec North America. [15] [16] [17]

Академска и некомерцијална употреба[уреди | уреди извор]

Као отворени извор, OpenRISC се показао популарним у академским и хобистичким круговима. На пример, Стефан Валлентовитз [18] и његов тим са Института за интегрисане системе на техничком универзитету у Минхену (нем. Technische Universität München) су користили OpenRISC у истраживању вишејезгрених процесорских архитектура. [19] Корисничка група хардвера отвореног кода у Великој Британији је у два наврата [20] [21] водила сесије на OpenRISC-у, док је хобиста Sven-Åke Andersson написао свеобухватан блог о OpenRISC-у за почетнике [22] који је привукао интересовање. часописа Electronic Engineering Times (EE Times). [23] Себастиан Мацке (Sebastian Macke) је имплементирао jor1k, OpenRISC 1000 емулатор у Џаваскрипт-у (енгл. JavaScript), покрећући Линукс са X Window System-ом и Вејланд подршком. [24]

Подршка ланца алата[уреди | уреди извор]

OpenRISC заједница пренела је ГНУ ланац алата на OpenRISC да би подржала развој у програмским језицима C и C++ . Коришћењем овог ланца алата, њјулиб (енгл. newlib), uClibc, musl (од верзије 1.1.4) и гну ц библиотеке су пренете на процесор. Dynalith нуди OpenIDEA, графичко интегрисано развојно окружење (енгл. IDE) засновано на овом ланцу алата. Пројекат преноса ВМНР-а на архитектуру OpenRISC 1000 започео је почетком 2012.[25]

GCC 9 је објављен уз подршку OpenRISC.[26]

Пројекат OR1K пружа симулатор скупа инструкција, or1ksim. Водећа имплементација OR1200, је модел нива регистрације-преноса (енгл. register-transfer level) у Верилог ХДЛ-у, од којих је циклусно тачан модел базиран на СистемЦ-у (енгл. SystemC) може бити уграђен у ORPSoC. Модел велике брзине OpenRISC 1200 је такође доступан путем Open Virtual Platforms (погледати OVPsim) иницијативе, која је постављена од стране Imperas-а.

Подршка за оперативни систем[уреди | уреди извор]

Линукс подршка[уреди | уреди извор]

Главно језгро Линукса стекло је подршку за OpenRISC у верзији 3.1.[27] Имплементација спојена у овом издању је 32-битна породица OpenRISC-а 1000 (or1k). [28]

Подршка за RTOS[уреди | уреди извор]

Неколико real-time оперативних система је пренето на OpenRISC, укључујући RTEMS, FreeRTOS и eCos .

Подршка за QEMU[уреди | уреди извор]

Од верзије 1.2, QEMU подржава емулацију OpenRISC платформи. [29]

Види још[уреди | уреди извор]

Референце[уреди | уреди извор]

  1. ^ OpenRISC Community
  2. ^ „Published versions”. Приступљено 2021-03-28. 
  3. ^ „Floating point extensions operating on 32-bit/64-bit”. Приступљено 2021-03-28. 
  4. ^ „Vector/DSP extensions (SIMD) operating on 8-, 16-, 32- and 64-bit data”. Приступљено 2021-03-28. 
  5. ^ „Објављене верзије”. OpenRisc.io. Приступљено 2021-04-17. 
  6. ^ mor1kx
  7. ^ „Vector/DSP extensions (SIMD) operating on 8-, 16-, 32- and 64-bit data.”. OpenRisc.io. Приступљено 2021-04-17. 
  8. ^ „System Simulators”. OpenRisc.io. Приступљено 2021-04-17. 
  9. ^ Pelgrims, Patrick; Tierens, Tom; Driessens, Dries (2004). „Basic Custom OpenRISC System Hardware Tutorial: Embedded system design based upon Soft- and Hardcore FPGAs” (PDF). De Nayer Instituut. Архивирано из оригинала (PDF) 2006-11-27. г. Приступљено 2009-03-03. 
  10. ^ Li, Xiang. Open source embedded platform based on OpenRISC and DE2-70 (Теза). (KTH), Sweden. 
  11. ^ „OpenRisc.io”. Приступљено 2021-04-17. 
  12. ^ Samsung Open Source Release Center, follow the links → TV & VIDEO → TV → DTV → ETC → OR1200.zip
  13. ^ Linux-sunxi project community wiki page on the AR100 controller Архивирано на сајту Wayback Machine (28. април 2021).
  14. ^ UVM Reference Flow, Accellera website (undated).
  15. ^ Post to the openrisc mailing lists at lists.openrisc.net on 8 April 2012 by Fredrick Bruhn, CEO of ÅAC Microtec
  16. ^ „Swedish breakthrough in space on NASA satellite with electronics from ÅAC Microtec” (Саопштење). 2012-10-11. Архивирано из оригинала 2014-01-18. г. Приступљено 2018-03-17. 
  17. ^ „Svenskt genombrott i rymden på NASA-satellit med elektronik från ÅAC Microtec” [Swedish breakthrough in space on NASA satellite with electronics from ÅAC Microtec] (Саопштење) (на језику: шведски). 2012-10-11. Приступљено 2018-03-16. [мртва веза]
  18. ^ „Dipl.-Ing. Dipl.-Wirt.-Ing. Stefan Wallentowitz”. 2009—2013. Архивирано из оригинала 2013-04-13. г. 
  19. ^ Wallentowitz, Stefan; Wild, Thomas; Herkersdorf, Andreas. „Multicore Architecture and Programming Model Co-Optimization (MAPCO)” (PDF) (Research poster at the Sixth International Summer School on Advanced Computer Architecture and Compilation for High-Performance and Embedded Systems (ACACES), 11-17 July 2010). Архивирано из оригинала (PDF) 10. 2. 2013. г. Приступљено 2018-10-29. 
  20. ^ Chips (Programmable Logic, Computer Conservation with FPGAs, OpenCores & OpenRISC 1000).
  21. ^ Practical System-on-Chip (Program your own open source FPGA SoC).
  22. ^ OpenRISC 1200 soft processor Архивирано 2012-05-13 на сајту Wayback Machine.
  23. ^ Maxfield, Clive (2012-05-03). „Comparing four 32-bit soft processor cores”. Electronic Engineering Times (EE Times). San Francisco, California, United States: AspenCore Media. Приступљено 2019-03-21. 
  24. ^ OpenRISC Emulator in JavaScript Can Run Wayland
  25. ^ „llvm-or1k”. GitHub. 2018-04-06. Приступљено 2019-03-21. 
  26. ^ GCC 9
  27. ^ „git.kernel.org - linux/kernel/git/torvalds/linux-2.6.git/tree - arch/openrisc/”. git.kernel.org. Архивирано из оригинала 2012-07-08. г. Приступљено 2011-10-17. 
  28. ^ „Linux 3.1”. Kernel Newbies. Приступљено 2011-10-17. 
  29. ^ QEMU Changelog 1.2

Спољашње везе[уреди | уреди извор]