Ағылшыншамен салыстырыңыз: абзацты басыңыз — түпнұсқа терезеде ашылады. Абзац астындағы EN түймесі оны мәтін ішінде көрсетеді.
Мазмұны
Кіріспе
OpenRISC – бұл қысқартылған нұсқаулар жиынтығы компьютерлік (RISC) қағидалары негізінде ашық бастапқы кодты аппараттық құралдарға негізделген орталық процессорларды (CPU) әзірлеу жобасы. Ол ашық бастапқы лицензиямен қолданылатын нұсқаулар жиынтығы архитектурасын (ISA) қамтиды. Бұл OpenCores қауымдастығының түпкілікті флагмандық жобасы. Бірінші (және 2019 жылға дейін жалғыз) архитектуралық сипаттама OpenRISC 1000 ("OR1k") үшін жасалған, ол 32 биттік және 64 биттік процессорлар отбасын, сондай-ақ опционалды жылжымалы нүктелік арифметика мен векторлық өңдеу мүмкіндіктерін сипаттайды. Бұл сипаттаманың OpenRISC 1200 іске асырылуын 2000 жылы Дамжан Лампрет Verilog аппараттық сипаттама тілінде (HDL) жазған. OR 1200-ге қарағанда бірнеше артықшылықтары бар mor1kx іске асырылуын Джулиус Бакстер жобалап, ол да Verilog тілінде жазылған. Сонымен қатар, OR1k сипаттамасын іске асыратын бағдарламалық симуляторлар да бар. Аппараттық дизайн GNU Lesser General Public License (LGPL) лицензиясы бойынша, ал модельдер мен микрокод GNU General Public License (GPL) лицензиясы бойынша жарияланды. OpenRISC 1200 негізіндегі чип жүйесінің (SoC) анықтамалық нұсқасы әзірленді, ол OpenRISC Reference Platform System on Chip (ORPSoC) деп аталды. Бірнеше топтар ORPSoC және басқа OR1200 негізделген дизайнды далалық бағдарламаланатын қақпалық тізбектерде (FPGA) іске қосты, сондай-ақ бірнеше коммерциялық өнімдер жасалды. Кейінгі SoC дизайнды, сонымен қатар OpenRisc 1000 CPU іске асырылымы негізінде, minSoC, OpTiMSoC және MiSoC құрады.
OpenRISC is a project to develop a series of open source hardware based central processing units (CPUs) on established reduced instruction set computer (RISC) principles. It includes an instruction set architecture (ISA) using an open source license. It is the original flagship project of the OpenCores community. The first (and as of 2019 only) architectural description is for the OpenRISC 1000 ("OR1k"), describing a family of 32 bit and 64 bit processors with optional floating point arithmetic and vector processing support. The OpenRISC 1200 implementation of this specification was designed by Damjan Lampret in 2000, written in the Verilog hardware description language (HDL). The later mor1kx implementation, which has some advantages compared to the OR 1200, was designed by Julius Baxter and is also written in Verilog. Additionally software simulators exist, which implement the OR1k specification. The hardware design was released under the GNU Lesser General Public License (LGPL), while the models and firmware were released under the GNU General Public License (GPL). A reference system on a chip (SoC) implementation based on the OpenRISC 1200 was developed, named the OpenRISC Reference Platform System on Chip (ORPSoC). Several groups have demonstrated ORPSoC and other OR1200 based designs running on field programmable gate arrays (FPGAs), and there have been several commercial derivatives produced. Later SoC designs, also based on an OpenRisc 1000 CPU implementation, are minSoC, OpTiMSoC and MiSoC.
Нұсқаулар жиынтығы
Нұсқаулар жиынтығы – 3 операндты жүктеу-сақтау архитектурасын қолдана отырып, 16 немесе 32 жалпы мақсаттағы регистрлермен және 32 биттік белгілі бір ұзындықтағы нұсқауларға ие, MIPS архитектурасын еске түсіретін қарапайым, дәстүрлі RISC архитектурасы. 32 және 64 биттік нұсқалар арасындағы нұсқаулар жиынтығы көбінесе бірдей, басты айырмашылық – регистрлердің ені (32 немесе 64 бит) және беттік кестелердің құрылымы. OpenRISC спецификациясы қазіргі заманғы десктоптық және серверлік процессорларға тән барлық мүмкіндіктерді қамтиды: қадағалау режимі және виртуалды жад жүйесі, жад беттеріне оқу, жазу және орындау бақылауының опциялық мүмкіндігі, сондай-ақ бірнеше процессор арасында синхрондау және үзілістерді басқаруға арналған нұсқаулар. Тағы бір маңызды ерекшелік – сандық сигналды өңдеуге арналған, бір нұсқаумен бірнеше дерек (SIMD) нұсқауларының кең жиынтығы.
The instruction set is a reasonably simple traditional RISC architecture reminiscent of MIPS using a 3 operand load store architecture, with 16 or 32 general purpose registers and a fixed 32 bit instruction length. The instruction set is mostly identical between the 32 and 64 bit versions of the specification, the main difference being the register width (32 or 64 bits) and page table layout. The OpenRISC specification includes all features common to modern desktop and server processors: a supervisor mode and virtual memory system, optional read, write, and execute control for memory pages, and instructions for synchronizing and interrupt handling between multiple processors. Another notable feature is a rich set of single instruction, multiple data (SIMD) instructions intended for digital signal processing.
Қолданылу
Көптеген іске асырулар далалық бағдарламаланатын қақпа массивтерінде (FPGA) жасалады, бұл дизайнды өнімділіктен кейін қайта итерациялау мүмкіндігін береді. 2018 жылға қарай OpenRISC 1000 тұрақты деп есептелді, сондықтан ORSoC (OpenCores иесі) өнімділікті арттыру үшін арзанға түсетін мақсатты интегралдық схеманы (ASIC) жасау үшін халықтан қаржы жинау жобасын бастады. Бұл қадамға қауымдастықтан сын келді. Жоба көздеген мақсатына жете алмады. 2024 жылға дейін ашық кодты ASIC өндірілген жоқ.
Most implementations are on field programmable gate arrays (FPGAs) which give the possibility to iterate on the design at the cost of performance. By 2018, the OpenRISC 1000 was considered stable, so ORSoC (owner of OpenCores) began a crowdfunding project to build a cost efficient application specific integrated circuit (ASIC) to get improved performance. ORSoC faced criticism for this from the community. The project did not reach the goal. as of 2024, no open source ASIC had been produced.
Коммерциялық іске асыру
Бірнеше коммерциялық ұйымдар OpenRISC 1000 архитектурасының туындыларын, соның ішінде ORSoC-тен ORC32 1208 және Beyond Semiconductor-тен BA12, BA14 және BA22-ні әзірледі. Dynalith Systems OpenRISC 1000 және BA12-ні қолдана алатын iNCITE FPGA прототиптеу тақтасын ұсынады. Flextronics (Flex) және Jennic Limited OpenRISC-ті қолданысқа арналған интегралдық схеманың (ASIC) бөлігі ретінде өндірді. Samsung OpenRISC 1000-ды DTV жүйесіндегі микросхемаларда пайдаланады (SDP83 B сериясы, SDP92 C сериясы, SDP1001/SDP1002 D сериясы, SDP1103/SDP1106 E сериясы). Allwinner Technology компаниясы AR100 қуат контроллерінде OpenRISC өзегін пайдаланады, ол A31 ARM негізделген SoC құрамына кіреді. Cadence Design Systems OpenRISC-ті құралдар тізбегі ағындарын құжаттауда эталондық архитектура ретінде қолдана бастады (мысалы, UVM эталондық ағыны, қазір Accellera-ға үлестірілді). TechEdSat, NASA OpenRISC архитектурасына негізделген алғашқы Linux компьютері 2012 жылдың шілдесінде ұшырылды және 2012 жылдың қазан айында ÅAC Microtec және ÅAC Microtec North America компаниялары ұсынған, құрастырған және сынаған аппараттық құралдармен Халықаралық ғарыш станциясына жеткізілді.
Several commercial organizations have developed derivatives of the OpenRISC 1000 architecture, including the ORC32 1208 from ORSoC and the BA12, BA14, and BA22 from Beyond Semiconductor. Dynalith Systems provide the iNCITE FPGA prototyping board, which can run both the OpenRISC 1000 and BA12. Flextronics (Flex) and Jennic Limited manufactured the OpenRISC as part of an application specific integrated circuit (ASIC). Samsung uses the OpenRISC 1000 in their DTV system on chips (SDP83 B Series, SDP92 C Series, SDP1001/SDP1002 D Series, SDP1103/SDP1106 E Series). Allwinner Technology are reported to use an OpenRISC core in their AR100 power controller, which forms part of the A31 ARM based SoC. Cadence Design Systems have begun using OpenRISC as a reference architecture in documenting tool chain flows (for example the UVM reference flow, now contributed to Accellera). TechEdSat, the first NASA OpenRISC architecture based Linux computer launched in July 2012, and was deployed in October 2012 to the International Space Station with hardware provided, built, and tested by ÅAC Microtec and ÅAC Microtec North America.
Академиялық және коммерциялық емес пайдалану
Ашық бастапқы коды болғандықтан, OpenRISC академиялық және хоббишілер қатарында танымал болды. Мысалы, Стефан Валлентовиц және Мюнхен техникалық университетінің Интегралды жүйелер институтындағы оның командасы OpenRISC-ті көп ядролы процессор архитектураларын зерттеуде пайдаланды. Ұлыбританиядағы Open Source Hardware User Group (OSHUG) OpenRISC бойынша екі рет оқу өткізді, ал хоббиші Свен Аке Андерссон жаңадан бастаушылар үшін OpenRISC туралы толыққанды блог жазды, ол Electronic Engineering Times (EE Times) қызығушылығын тартып алды. Себастьян Макке OpenRISC 1000 эмуляторы jor1k-ты JavaScript-те іске асырды, ол X Window System және Wayland қолдауымен Linux-ты іске қосады.
Being open source, OpenRISC has proved popular in academic and hobbyist circles. For example, Stefan Wallentowitz and his team at the Institute for Integrated Systems at the Technische Universität München have used OpenRISC in research into multi core processor architectures. The Open Source Hardware User Group (OSHUG) in the UK has on two occasions run sessions on OpenRISC, while hobbyist Sven Åke Andersson has written a comprehensive blog on OpenRISC for beginners, which attracted the interest of Electronic Engineering Times (EE Times). Sebastian Macke has implemented jor1k, an OpenRISC 1000 emulator in JavaScript, running Linux with X Window System and Wayland support.
Құрал тізбегін қолдау
OpenRISC қауымдастығы C және C++ бағдарламалау тілдерінде дамуды қолдау үшін GNU құралдар тізбесін OpenRISC-ке көшірді. Осы құралдар тізбегін пайдалану арқылы newlib, uClibc, musl (1.1.4 нұсқасынан бастап) және glibc кітапханалары процессорға портталды. Dynalith осы құралдар тізбегіне негізделген OpenIDEA графикалық интеграцияланған даму ортасын (IDE) ұсынады. LLVM-ді OpenRISC 1000 архитектурасына порттау жобасы 2012 жылдың басында басталды. GCC 9 OpenRISC қолдауымен жарыққа шықты. OR1K жобасы нұсқаулар жиынтығын симуляциялайтын or1ksim құралын ұсынады. Басты жетістік – OR1200, Verilog HDL-дегі тіркелімдік беру деңгейі (RTL) моделі, одан ORPSoC-де SystemC негізіндегі циклдік дәлдікпен модель құруға болады. OpenRISC 1200-нің жоғары жылдамдықты моделі Imperas ұйымдастырған Ашық виртуалды платформалар (OVP) бастамасы арқылы қолжетімді (OVPsim қараңыз).
The OpenRISC community have ported the GNU toolchain to OpenRISC to support development in the programming languages C and C++. Using this toolchain the newlib, uClibc, musl (as of release 1.1.4), and glibc libraries have been ported to the processor. Dynalith provides OpenIDEA, a graphical integrated development environment (IDE) based on this toolchain. A project to port LLVM to the OpenRISC 1000 architecture began in early 2012. GCC 9 released with OpenRISC support. The OR1K project provides an instruction set simulator, or1ksim. The flagship implementation, the OR1200, is a register transfer level (RTL) model in Verilog HDL, from which a SystemC based cycle accurate model can be built in ORPSoC. A high speed model of the OpenRISC 1200 is also available through the Open Virtual Platforms (OVP) initiative (see OVPsim), set up by Imperas.
Linux-ты қолдау
Linux негізгі ядросы 3.1 нұсқасынан бастап OpenRISC қолдауын алды. Осы нұсқада қосылған реализация – 32 биттік OpenRISC 1000 (or1k) отбасы. Бұрынғы OpenRISC 1000 архитектурасы енді негізгі портпен алмастырылды.
The mainline Linux kernel gained support for OpenRISC in version 3.1. The implementation merged in this release is the 32 bit OpenRISC 1000 family (or1k). Formerly OpenRISC 1000 architecture, it has been superseded by the mainline port.
RTOS қолдау
OpenRISC-ке бірнеше нақты уақыт операциялық жүйелері (RTOS) көшірілді, оның ішінде NuttX, RTEMS, FreeRTOS және eCos.
Several real time operating systems (RTOS) have been ported to OpenRISC, including NuttX, RTEMS, FreeRTOS, and eCos.
QEMU-ны қолдау
1.2 нұсқасынан бастап QEMU OpenRISC платформаларын эмуляциялауға қолдау көрсетеді.
Since version 1.2, QEMU supports emulating OpenRISC platforms.