OpenRISC
OpenRISC adalah proyek pengembangan perangkat keras sumber terbuka berdasarkan Unit Pemroses Sentral (Bahasa Inggris: Central Processing Unit; CPU) yang menggunakan pripsip komputer set instruksi sederhana (Reduced Instruction Set Computer; RISC). Perangkat lunak ini menggunakan arsitektur set instruksi yang menggunakan lisensi sumber terbuka. Proyek ini awalnya adalah proyek unggulan dari komunitas OpenCores. Deskripsi arsitektur pertama untuk OpenRISC 1000 ("OR1k") mendeskripsikan keluarga prosesor 32-bit dan 64-bit dengan opsi dukungan aritmetika titik kambang dan prosesor vektor.[4] Implementasi OpenRISC 1200 dari spesifikasi tersebut didesain oleh Damjan Lampret pada tahun 2000 yang ditulis dengan bahasa deksripsi perangkat keras (hardware description language; HDL) Verilog.[5] Implementasi mor1kx selanjutnya memiliki keunggulan dibandingkan dengan OR1200[6] didesain oleh Julius Baxter dan juga ditulis dengan Verilog. Tambahan simulator perangkat lunak tersedia[7] dengan implementasi spesifikasi OR1k. Desain perangkat lunak dirilis dengan Lisensi Publik Sedikit Kurang Umum GNU (LGPL). Sementara itu, model dan perangkat tegar dirilis dengan Lisensi Publik Umum GNU (GPL). Terdapat produk referensi terhadap implementasi system on a chip (SoC) berdasarkan OpenRISC 1200 yang dinamai OpenRISC Reference Platform System-on-Chip (ORPSoC). Beberapa grup telah mendemonstrasikan bahwa desain berdasarkan OR 1200, termasuk ORPSoC dapat berjalan pada field-programmable gate arrays (FPGA).[8][9] Bahkan, terdapat beberapa produk turunan komersial yang telah diproduksi. Desain SoC selanjutnya yang berdasarkan implementasi CPU OpenRISC 1000 adalah minSoC, OpTiMSoC, dan MiSoC.[10] Set instruksiSet instruksi yang digunakan pada spesifikasi OpenRISC adalah arsitektur RISC tradisional yang cukup sederhana, mirip dengan MIPS. Set instruksi tersebut menggunakan arsitektur penyimpanan beban 3-operan, dengan 16 atau 32 register tujuan umum dan panjang instruksi tetap 32-bit. Sebagian besar set instruksi identik antara spesifikasi versi 32 dan 64-bit. perbedaan utamanya adalah lebar register (32 atau 64 bit) dan tata letak tabel halaman. Spesifikasi OpenRISC mencakup semua fitur yang umum pada prosesor desktop dan server modern: mode supervisor dan sistem memori virtual, kontrol baca, tulis, dan eksekusi opsional untuk halaman memori, dan instruksi untuk sinkronisasi dan penanganan interupsi antara beberapa prosesor. Fitur penting lainnya adalah serangkaian instruksi tunggal, banyak data (single instruction, many data; SIMD) yang ditujukan untuk pemrosesan sinyal digital. Dukungan rantai alatKomunitas OpenRISC telah mem-porting rantai alat GNU ke OpenRISC untuk mendukung pengembangan bahasa pemrograman C dan C++. Dengan menggunakan rantai alat tersebut, pustaka seperti newlib, uClibc, musl, dan glibc telah diporting ke prosesor ini. Dynalith menyediakan OpenIDEA, lingkungan pengembangan terpadu grafis yang dikembangkan berdasarkan rantai alat tersebut. Sebuah proyek untuk memporting LLVM ke arsitektur OpenRISC 1000 dimulai sejak awal 2012.[11] GCC 9 dirilis dengan dukungan OpenRISC.[12] Proyek OR1K menyediakan simulator set instruksi, yaitu or1ksim. Implementasi tertinggi, OR1200, adalah sebuah model register-transfer level (RTL) dengan Verilog HDL, dengan model siklus akurat berdasarkan SystemC dapat dibuat pada ORPSoC. Model kecepatan tinggi dari OpenRISC 1200 juga tersedia melalui inisiatif Open Virtual Platforms (OVP) (lihat OVPsim), yang diatur oleh Imperas. Dukungan sistem operasiDukungan LinuxKernel Linux mendapatkan dukungan untuk OpenRISC pada versi 3.1.[13] Implementasi pada dukungan ini adalah versi keluarga OpenRISC 1000 (or1k) 32-bit.[14] Dukungan RTOSBeberapa sistem operasi waktu nyata (real-time operating system; RTOS) telah di-porting ke OpenRISC, termasuk NuttX, RTEMS, FreeRTOS, dan eCos. Dukungan QEMUSejak versi 1.2, QEMU mendukung emulasi platform OpenRISC.[15] Referensi
Pranala luar
|