Apa itu Prosesor RISC V: Arsitektur, Cara Kerja & Aplikasinya

Coba Instrumen Kami Untuk Menghilangkan Masalah





RISC V adalah arsitektur set Instruksi yang dikembangkan oleh University of California, Berkeley. Konsep RISC dimotivasi oleh kenyataan bahwa sebagian besar instruksi prosesor tidak digunakan oleh sebagian besar program komputer. Jadi, logika decoding yang tidak perlu digunakan dalam desain prosesor , mengkonsumsi lebih banyak daya serta area. Untuk mempersingkat set instruksi & untuk berinvestasi lebih banyak dalam sumber daya register, Prosesor RISC V diimplementasikan.


Teknologi ini diperhatikan oleh banyak raksasa teknologi dan start-up karena sepenuhnya open source & gratis. Sebagian besar jenis prosesor tersedia dengan perjanjian lisensi, namun dengan jenis prosesor ini; siapa pun dapat membuat desain prosesor baru mereka. Jadi artikel ini membahas gambaran umum tentang prosesor RISC V – cara kerja dan aplikasinya.



Apa itu Prosesor RISC V?

Dalam prosesor RISC V, istilah RISC adalah singkatan dari 'reduced instruction set computer' yang mengeksekusi beberapa instruksi komputer sedangkan 'V' adalah singkatan dari generasi ke-5. Ini adalah ISA perangkat keras open-source (arsitektur set instruksi) berdasarkan prinsip yang ditetapkan: MEMPERTARUHKAN .

Dibandingkan dengan desain ISA lainnya, ISA ini tersedia dengan lisensi open source. Jadi, sejumlah perusahaan manufaktur telah mengumumkan dan juga menyediakan perangkat keras RISC-V, dengan sistem operasi open-source.



Ini adalah arsitektur baru dan tersedia dalam lisensi terbuka, tidak terbatas & gratis. Prosesor ini mendapat dukungan luas dari industri pembuat chip & perangkat. Jadi ini terutama dirancang agar dapat diperluas & disesuaikan secara bebas untuk digunakan di banyak aplikasi.

Sejarah RISC V

RISC ditemukan oleh Prof. David Patterson sekitar tahun 1980 di University of California, Berkeley. Prof. David bersama Prof. John Hennessy menyampaikan usahanya dalam dua buku yaitu “Computer Organization and Design” & “Computer Architecture at Stanford University. Jadi, mereka menerima ACM A.M. Penghargaan Turing di tahun 2017.

Dari tahun 1980 hingga tahun 2010, penelitian pengembangan generasi kelima RISC dimulai dan akhirnya diidentifikasi sebagai RISC-V yang diucapkan sebagai risiko lima.

Arsitektur & Pengerjaan RISC V

Arsitektur RV12 RISC V ditunjukkan di bawah ini. RV12 sangat dapat dikonfigurasi dengan CPU RISC single-core RV32I dan RV64I yang digunakan di bidang tertanam. RV12 juga berasal dari keluarga CPU 32 atau 64-bit tergantung pada set instruksi RISC-V standar industri.

RV12 hanya menjalankan arsitektur Harvard untuk akses simultan ke instruksi serta memori data. Ini juga mencakup pipa 6-tahap yang membantu dalam mengoptimalkan tumpang tindih di antara eksekusi serta akses memori untuk meningkatkan efisiensi. Arsitektur ini terutama mencakup Prediksi Cabang, Cache Data, Unit Debug, Cache Instruksi, & Unit Pengganda atau Pembagi opsional.

  Arsitektur Prosesor RISC
Arsitektur Prosesor RISC

Fitur utama RV12 RISC V adalah sebagai berikut.

  • Ini adalah set instruksi standar Industri.
  • Diparameterisasi dengan data 32 atau 64bit.
  • Ini memiliki interupsi yang tepat dan cepat.
  • Instruksi khusus memungkinkan penambahan akselerator perangkat keras berpemilik.
  • Eksekusi satu siklus.
  • Pipa enam tahap dengan pengoptimalan terlipat.
  • Dukungan dengan perlindungan memori.
  • Cache opsional atau Parameterized.
  • Sangat Parameter.
  • Pengguna dapat memilih data 32/ 64-bit & Unit Prediksi Cabang.
  • Pengguna dapat memilih cache instruksi/data.
  • Struktur, ukuran & arsitektur cache yang dapat dipilih pengguna.
  • Dukungan Pembagi atau Pengganda Perangkat Keras dengan latensi yang ditentukan pengguna.
  • Arsitektur bus fleksibel yang mendukung Wishbone & AHB.
  • Desain ini mengoptimalkan kekuatan & ukuran.
  • Desain sepenuhnya diparameterisasi yang memberikan pengorbanan kinerja atau daya.
  • Desain CLK berpagar untuk mengurangi daya.
  • Dukungan perangkat lunak dengan standar Industri.
  • Simulator arsitektur.
  • Eclipse IDE digunakan untuk Linux/Windows.

Pipa Eksekusi RISC V

Ini mencakup lima tahap seperti IF (pengambilan instruksi), ID (dekode instruksi), EX (eksekusi), MEM (akses memori) & WB (register write-back).

Ambil Instruksi

Pada tahap Instruction Fetch atau IF, satu instruksi dibaca dari program counter (PC) dan memori instruksi yang diperbarui ke instruksi berikutnya.

Instruksi Pra-Decode

Setelah Dukungan RVC diizinkan, maka tahap Pra-Dekode Instruksi akan mendekodekan instruksi terkompresi 16-bit menjadi instruksi asli 32-bit.

Dekode Instruksi

Pada tahap Instruction Decode (ID), Register File diperbolehkan & kontrol bypass diputuskan.

Menjalankan

Pada tahap Execute, hasilnya dihitung untuk instruksi ALU, DIV, MUL, memori yang diizinkan untuk instruksi Store atau Load, dan cabang & lompatan diukur terhadap hasil yang diharapkan.

Penyimpanan

Dalam tahap Memori ini, memori diakses melalui pipa. Dimasukkannya fase ini memastikan kinerja tinggi pipeline.

Menulis kembali

Pada tahap ini, hasil tahap Eksekusi ditulis ke dalam Register File.

Prediktor Cabang

Prosesor ini termasuk unit prediktor cabang atau BPU yang digunakan untuk menyimpan data masa lalu untuk memandu prosesor RISC V dalam memutuskan apakah cabang tertentu diambil atau tidak-. Data prediktor ini hanya diperbarui setelah cabang dijalankan.

Unit ini mencakup parameter berbeda yang menentukan perilakunya. Misalnya, HAS_BPU digunakan untuk menentukan apakah cabang memprediksi unit hadir, BPU_GLOBAL_BITS akan menentukan berapa banyak bit masa lalu yang harus digunakan dan BPU_LOCAL_BITS akan menentukan berapa banyak LSB penghitung program yang harus digunakan. Kombinasi BPU_LOCAL_BITS & BPU_GLOBAL_BITS akan membuat vektor yang terutama digunakan untuk mengatasi Tabel Prediksi Cabang.

Tembolok Data

Ini terutama digunakan untuk mempercepat akses memori data dengan buffering lokasi memori yang baru diakses. Ini mampu menangani akses setengah kata, byte & kata ketika  XLEN = 32 jika mereka berada di batas mereka sendiri. Itu juga mampu menangani akses setengah kata, byte, kata & kata ganda ketika XLEN=64 jika mereka berada di batas mereka sendiri.

Sepanjang cache miss, seluruh blok dapat ditulis kembali ke memori, Jadi jika perlu, blok baru dapat dimuat ke dalam cache. Cache Data dinonaktifkan dengan menyetel DCACHE_SIZE ke nol. Setelah itu, lokasi memori diakses langsung melalui Antarmuka Data .

Cache Instruksi

Ini terutama digunakan untuk mempercepat pengambilan instruksi dengan buffering instruksi yang baru diambil. Cache ini digunakan untuk mengambil satu paket untuk setiap siklus pada batas 16-bit tetapi tidak melintasi batas blok. Sepanjang cache miss, seluruh blok dapat dimuat dari memori instruksi. Konfigurasi cache ini dapat dilakukan berdasarkan kebutuhan pengguna. Ukuran cache, algoritma penggantian, dan panjang blok dapat dikonfigurasi.

Siklus instruksi akan dinonaktifkan dengan Mengatur ICACHE_SIZE ke nol. Setelah itu, parsel diambil langsung dari memori melalui Antarmuka Instruksi.

Unit Debug

Unit Debug akan memungkinkan lingkungan Debug untuk berhenti dan memeriksa CPU. Fitur utama dari ini adalah Pelacakan Cabang, Pelacakan Satu Langkah hingga 8- Breakpoint Perangkat Keras.

Daftar File

Ini dirancang dengan 32 lokasi register dari X0 hingga X31 di mana Register X9 selalu nol. Register File mencakup 1- port tulis & 2- port baca.

Antarmuka yang Dapat Dikonfigurasi

Ini adalah antarmuka eksternal di mana prosesor ini mendukung antarmuka bus eksternal yang berbeda.

Bagaimana RISC V Bekerja?

RISC-V adalah arsitektur set instruksi yang berakar pada prinsip RISC (reduced instruction set computer). Prosesor ini sangat unik dan juga revolusioner karena merupakan ISA gratis, umum, dan open-source di mana perangkat keras dapat dikembangkan, perangkat lunak dapat di-porting & prosesor dapat dirancang untuk mendukungnya.

Perbedaan B/W RISC V Vs MIPS

Perbedaan RISC V dan MIPS antara lain sebagai berikut.

RISC V

MIPS

Istilah RISC V adalah singkatan dari Reduced Instruction Set Computer dimana 'V' adalah generasi kelima. Istilah 'MIPS' adalah singkatan dari 'Juta instruksi per detik'.
RISC-V hanya mengizinkan produsen perangkat yang lebih kecil untuk merancang perangkat keras tanpa membayar. MIPS memungkinkan produsen untuk mengukur kecepatan prosesor dengan membayar karena tidak gratis.
MIPS mati secara efisien. RISC-V tidak mati secara efisien.
Prosesor ini menyediakan instruksi cabang untuk membandingkan dua register. MIPS tergantung pada instruksi perbandingan yang menempatkan register ke 1 atau 0 berdasarkan apakah kontrasnya benar.
Skema pengkodean ISA adalah tetap & variabel di RISC V. Skema pengkodean ISA diperbaiki di MIPS
Ukuran set instruksi adalah 16-bit atau 32-bit atau 64-bit atau 128-bit. Ukuran set instruksi adalah 32-bit atau 64-bit.
Ini memiliki 32 register tujuan umum & floating point Ini memiliki 31 register tujuan umum & floating point.
Ini memiliki 26 operasi floating point presisi tunggal & ganda. Ini memiliki 15 operasi floating point presisi tunggal & ganda.

Perbedaan B/W RISC V Vs ARM

Perbedaan RISC V Vs ARM antara lain sebagai berikut.

RISC V

LENGAN

RISC-V adalah open source, jadi tidak memerlukan lisensi apa pun. ARM adalah sumber tertutup, sehingga membutuhkan lisensi.
Ini adalah platform prosesor baru, jadi hanya ada sedikit dukungan untuk perangkat lunak & lingkungan pemrograman. ARM memiliki komunitas online yang sangat besar, yang mendukung perpustakaan & struktur untuk membantu perancang target di berbagai platform seperti mikroprosesor, mikrokontroler & juga server.
Chip berbasis RISC V menggunakan daya 1 watt. Chip berbasis ARM menggunakan daya di bawah 4 watt.
Ini memiliki sistem pengkodean ISA tetap & variabel. Ini memiliki sistem pengkodean ISA tetap.
Ukuran set instruksi RISC V berkisar dari 16-bit hingga 128-bit. Ukuran instruksinya berkisar dari 16-bit hingga 64-bit.
Ini mencakup 32 register tujuan umum & titik mengambang. Ini mencakup 31 register tujuan umum & floating point.
Ini memiliki 26 operasi floating point presisi tunggal. Ini memiliki 33 operasi floating point presisi tunggal.
Ini memiliki operasi floating point presisi 26-ganda. Ini memiliki operasi floating point presisi 29-ganda.

Kode Verilog RISC V

Kode Verilog memori instruksi untuk RISC ditunjukkan di bawah ini.

// Kode Verilog untuk Prosesor RISC
// Kode Verilog untuk Memori Instruksi

modul Instruksi_Memori(
masukan[15:0] pc,
keluaran[15:0] instruksi
);

reg [`col – 1:0] memori [`row_i – 1:0];
kawat [3 : 0] rom_addr = pc[4 : 1];
awal
mulai
$readmemb(“./test/test.prog”, memori,0,14);
akhir
menetapkan instruksi = memori[rom_addr];

modul akhir

Kode Verilog untuk prosesor RISC V 16-bit:

modul Risc_16_bit(
masukan klk
);

lompat kawat,bne,beq,mem_read,mem_write,alu_src,reg_dst,mem_to_reg,reg_write;
kawat[1:0] alu_op;
kawat [3:0] opcode;

// Jalur data

Datapath_Unit DU
(
.clk(clk),
.lompat(lompat),
.katak(katak),
.mem_read(mem_read),
.mem_write(mem_write),
.alu_src(alu_src),
.reg_dst(reg_dst),
.mem_to_reg(mem_to_reg),
.reg_write(reg_write),
.bne(bne),
.alu_op(alu_op),
.opcode(opcode)
);

// unit kontrol
Kontrol_Kontrol unit
(
.opcode(opcode),
.reg_dst(reg_dst),
.mem_to_reg(mem_to_reg),
.alu_op(alu_op),
.lompat(lompat),
.bne(bne),
.katak(katak),
.mem_read(mem_read),
.mem_write(mem_write),
.alu_src(alu_src),
.reg_write(reg_write)
);
modul akhir

Set Instruksi

Set instruksi RISC V dibahas di bawah ini.

Operasi Aritmatika

Operasi aritmatika RISC V tercantum di bawah ini.

Mnemonik Jenis Petunjuk Keterangan
TAMBAHKAN  rd, rs1, rs2

R

Menambahkan rdß rs1 + rs2
SUB rd, rs1, rs2

R

Mengurangi rdß rs1 –  rs2
ADDI rd, rs1, imm12

Saya

Tambahkan segera rdß rs1 + imm12
SLT rd, rs1, rs2

R

Tetapkan kurang dari rdß rs1 -< rs2
SLTI rd, rs1, imm12

Saya

Tetapkan kurang dari segera rdß rs1 -< imm12
SLTU rd, rs1, rs2

R

Setel kurang dari yang tidak ditandatangani rdß rs1 -< rs2
SLTIU rd, rs1, imm12

Saya

Tetapkan kurang dari segera tidak ditandatangani rdß rs1 -< imm12
LUI rd, imm20

DI

Muat bagian atas segera rdß imm20<<12
AUIP rd, imm20

DI

Tambahkan bagian atas langsung ke PC rdß PC+imm20<<12

Operasi Logika

Operasi logis RISC V tercantum di bawah ini.

Mnemonik Jenis Petunjuk Keterangan
DAN  rd, rs1, rs2

R

DAN rdß rs1 & rs2
ATAU rd, rs1, rs2

R

ATAU rdß rs1 | rs2
XOR  rd, rs1, rs2

R

GRATIS rdß rs1 ^  rs2
ANDI  rd, rs1, imm12

Saya

DAN segera rdß rs1 & imm2
ORI rd, rs1, imm12

Saya

ATAU Segera rdß rs1 | imm12
OXRI rd, rs1, imm12

Saya

XOR segera rdß rs1 ^ rs2
SLL rd, rs1, rs2

R

Geser ke kiri logis rdß rs1 <<  rs2
SRL rd, rs1, rs2

R

Geser ke kanan logis rdß rs1 >>  rs2
RAS rd, rs1, rs2

R

Geser aritmatika ke kanan rdß rs1 >>  rs2
SLLI rd, rs1, palsu

Saya

Geser ke kiri langsung logis rdß rs1 << palsu
SRLI rd, rs1, palsu

Saya

Geser logika kanan segera rdß rs1 >> palsu
SRAI rd, rs1, palsu

Saya

Geser aritmatika ke kanan segera rdß rs1 >> palsu

Operasi Muat/Penyimpanan

Operasi pemuatan/penyimpanan RISC V tercantum di bawah ini.

Mnemonik Jenis Petunjuk Keterangan
LD  rd, imm12 (rs1)

Saya

Muat kata ganda rdß mem [rs1 +imm12]
LW rd, imm12 (rs1)

Saya

Muat kata rdß mem [rs1 +imm12]
LH rd, imm12 (rs1)

Saya

Muat setengah jalan rdß mem [rs1 +imm12]
LB rd, imm12 (rs1)

Saya

Muat byte rdß mem [rs1 +imm12]
LWU rd, imm12 (rs1)

Saya

Muat kata tanpa tanda tangan rdß mem [rs1 +imm12]
LHU rd, imm12 (rs1)

Saya

Muat setengah kata tanpa tanda tangan rdß mem [rs1 +imm12]
LBU rd, imm12 (rs1)

Saya

Muat byte tidak ditandatangani rdß mem [rs1 +imm12]
SD  rs2, imm12 (rs1)

S

Simpan kata ganda rs2 ke mem [rs1 +imm12]
SW rs2, imm12 (rs1)

S

Simpan kata rs2 (31:0) ke mem [rs1 +imm12]
SH rs2, imm12 (rs1)

S

Simpan setengah jalan rs2 (15:0) ke mem [rs1 +imm12]
SB rs2, imm12 (rs1)

S

Simpan byte rs2 (15:0) ke mem [rs1 +imm12]
SRAI rd, rs1, palsu

Saya

Geser aritmatika ke kanan segera rs2 (7:0) ke mem [rs1 +imm12]

Operasi Percabangan

Operasi percabangan RISC V tercantum di bawah ini.

Mnemonik Jenis Petunjuk Keterangan
BEQ rs1, rs2, imm12

SB

Cabang sama Jika rs1== rs2

PC PC + imm12

BNE rs1, rs2, imm12

SB

Cabang tidak sama Jika rs1!= rs2

PC PC + imm12

BGE  rs1, rs2, imm12

SB

Cabang lebih besar dari atau sama Jika rs1>= rs2

PC PC + imm12

BGEU  rs1, rs2, imm12

SB

Cabang lebih besar dari atau sama dengan unsigned Jika rs1>= rs2

PC PC + imm12

BLT  rs1, rs2, imm12

SB

Cabang kurang dari Jika rs1< rs2

PC PC + imm12

BLTU  rs1, rs2, imm12

SB

Cabang kurang dari  tidak ditandatangani Jika rs1< rs2

PC PC+imm12 <<1

JAL  rd, imm20

UJ

Lompat dan Tautkan rdßPC+4
PCß PC+imm20
JALR  rd, imm12(rs1)

Saya

Langsung dan Tautkan daftar rdßPC+4
PCß rs1+imm12

Keuntungan

Itu kelebihan RISC prosesor V termasuk berikut ini.

  • Dengan menggunakan RISCV, kita dapat menghemat waktu pengembangan, pengembangan perangkat lunak, verifikasi, dll.
  • Prosesor ini memiliki banyak kelebihan seperti kesederhanaan, keterbukaan, modularitas, desain yang bersih, dan dapat diperpanjang.
  • Ini didukung oleh beberapa kompiler bahasa seperti GCC (GNU Compiler Collection), kompiler perangkat lunak bebas & melalui OS Linux .
  • Ini dapat digunakan oleh perusahaan secara bebas karena tanpa royalti, tanpa biaya lisensi & tanpa ikatan.
  • Prosesor RISC-V tidak menyertakan fitur baru atau inovatif karena hanya mengikuti prinsip-prinsip RISC yang sudah ada.
  • Serupa dengan beberapa ISA lainnya, spesifikasi prosesor ini hanya mendefinisikan berbagai tingkat set instruksi. Jadi ini berisi varian 32 & 64-bit serta ekstensi untuk memberikan dukungan untuk instruksi floating point.
  • Ini gratis, sederhana, modular, stabil, dll.

Kekurangan

Itu kelemahan dari prosesor RISC V termasuk berikut ini.

  • Instruksi kompleks sering digunakan oleh kompiler & programmer.
  • Output dari RISC dapat berubah berdasarkan kode ketika instruksi berikutnya dalam satu loop bergantung pada instruksi sebelumnya untuk dieksekusi.
  • Prosesor ini perlu menyimpan berbagai instruksi dengan cepat, yang memerlukan memori cache yang besar untuk merespons instruksi dalam waktu yang tepat.
  • Fitur lengkap, kemampuan & manfaat RISC terutama tergantung pada arsitekturnya.

Aplikasi

Itu aplikasi RISC V prosesor termasuk berikut ini.

  • RISC-V digunakan dalam sistem tertanam, kecerdasan buatan & pembelajaran mesin.
  • Prosesor ini digunakan dalam aplikasi sistem tertanam berbasis kinerja tinggi.
  • Prosesor ini cocok digunakan di beberapa bidang tertentu seperti komputasi tepi, AI & aplikasi penyimpanan.
  • RISC-V penting karena memungkinkan produsen perangkat yang lebih kecil untuk merancang perangkat keras tanpa membayar.
  • Prosesor ini hanya memungkinkan para peneliti dan pengembang untuk merancang serta meneliti dengan ISA atau arsitektur set instruksi yang tersedia secara bebas.
  • Aplikasi RISC V berkisar dari mikrokontroler tertanam kecil hingga PC desktop & superkomputer termasuk prosesor vektor.

Jadi, ini adalah gambaran umum tentang Prosesor RISC V – arsitektur, bekerja dengan aplikasi. Berikut adalah pertanyaan untuk Anda, apa itu prosesor CISC?