RISC V és una arquitectura de conjunt d'instruccions desenvolupada per la Universitat de Califòrnia, Berkeley. El concepte de RISC va ser motivat per la veritat que la majoria de les instruccions del processador no eren utilitzades per la majoria de programes informàtics. Per tant, s'utilitzava una lògica de descodificació innecessària dins dels dissenys de processadors , consumint més energia i àrea. Per escurçar el conjunt d'instruccions i invertir més en els recursos del registre, el Processador RISC V es va implementar.
Molts gegants tecnològics i start-ups van notar aquesta tecnologia perquè és completament de codi obert i gratuïta. La majoria dels tipus de processadors estan disponibles amb un acord de llicència, però amb aquest tipus de processador; qualsevol pot fer els seus nous dissenys de processadors. Així, aquest article tracta una visió general d'un processador RISC V: funcionament i les seves aplicacions.
Què és el processador RISC V?
Al processador RISC V, el terme RISC significa 'ordinador de conjunt d'instruccions reduït' que executa poques instruccions d'ordinador, mentre que 'V' significa la cinquena generació. És un maquinari de codi obert ISA (arquitectura de conjunt d'instruccions) basat en el principi establert de RISC .
En comparació amb altres dissenys ISA, aquest ISA està disponible amb una llicència de codi obert. Per tant, diverses empreses de fabricació han anunciat i també han proporcionat maquinari RISC-V, amb sistemes operatius de codi obert.
Aquesta és una arquitectura nova i està disponible en llicències obertes, no restrictives i gratuïtes. Aquest processador té un ampli suport de les indústries de fabricants de xips i dispositius. Per tant, està dissenyat principalment per ser extensible lliurement i personalitzable per utilitzar-lo en moltes aplicacions.
RISC V Història
El RISC va ser inventat pel professor David Patterson al voltant de 1980 a la Universitat de Califòrnia, Berkeley. El Prof. David amb el Prof. John Hennessy van presentar els seus esforços en dos llibres, 'Computer Organization and Design' i 'Computer Architecture at Stanford University. Així, van rebre l'ACM A.M. Premi Turing l'any 2017.
Des de l'any 1980 fins a l'any 2010, es va iniciar la investigació de desenvolupament de cinquena generació RISC i finalment es va identificar com RISC-V que es pronuncia com a risc cinc.
RISC V Arquitectura i Treball
L'arquitectura RV12 RISC V es mostra a continuació. El RV12 és altament configurable amb una CPU RISC compatible amb RV32I i RV64I d'un sol nucli que s'utilitza en camps incrustats. El RV12 també és d'una família de CPU de 32 o 64 bits, depenent del conjunt d'instruccions RISC-V estàndard industrial.
El RV12 simplement executa una arquitectura de Harvard per a l'accés simultani a la instrucció i la memòria de dades. També inclou una canalització de 6 etapes que ajuda a optimitzar els solapaments entre l'execució i els accessos a la memòria per millorar l'eficiència. Aquesta arquitectura inclou principalment predicció de branques, memòria cau de dades, unitat de depuració, memòria cau d'instruccions i unitats multiplicadores o divisores opcionals.
Les principals característiques de RV12 RISC V inclouen les següents.
- És un conjunt d'instruccions estàndard de la indústria.
- Parametritzat amb dades de 32 o 64 bits.
- Té interrupcions precises i ràpides.
- Les instruccions personalitzades permeten afegir acceleradors de maquinari propietaris.
- Execució de cicle únic.
- Conducte de sis etapes amb optimització plegada.
- Suport amb protecció de memòria.
- Cachés opcionals o parametritzats.
- Extremadament parametritzat.
- Els usuaris poden seleccionar dades de 32/64 bits i unitat de predicció de branques.
- Els usuaris poden seleccionar memòria cau d'instruccions/dades.
- Estructura, mida i arquitectura de la memòria cau seleccionables per l'usuari.
- Suport de divisor o multiplicador de maquinari per latència definida per l'usuari.
- L'arquitectura del bus és flexible que admet Wishbone i AHB.
- Aquest disseny optimitza la potència i la mida.
- El disseny està completament parametritzat, la qual cosa proporciona rendiments o compensacions de potència.
- Disseny CLK tancat per reduir la potència.
- Suport de programari per estàndard de la indústria.
- Simulador arquitectònic.
- Eclipse IDE s'utilitza per a Linux/Windows.
El pipeline d'execució RISC V
Inclou cinc etapes com IF (recuperació d'instruccions), ID (descodificació d'instruccions), EX (execució), MEM (accés a la memòria) i WB (rescriptura del registre).
Obtenció d'instruccions
En l'etapa Instruction Fetch o IF, es llegeix una única instrucció del comptador de programes (PC) i la memòria d'instruccions que s'actualitza a la següent instrucció.
Instrucció de pre-descodificació
Un cop es permet el suport RVC, l'etapa de pre-descodificació d'instruccions descodificarà una instrucció comprimida de 16 bits en una instrucció nativa de 32 bits.
Descodificació d'instruccions
A l'etapa de descodificació d'instruccions (ID), es permet el fitxer de registre i es decideixen els controls de derivació.
Executar
A l'etapa d'execució, el resultat es calcula per a una instrucció ALU, DIV, MUL, la memòria permesa per a una instrucció Emmagatzema o Carrega, i les ramificacions i els salts es mesuren en funció dels resultats esperats.
Memòria
En aquesta etapa de memòria, s'accedeix a la memòria a través del pipeline. La inclusió d'aquesta fase garanteix l'alt rendiment de la canonada.
Contestar
En aquesta etapa, el resultat de l'etapa d'execució s'escriu al fitxer de registre.
Predictor de branques
Aquest processador inclou una unitat de predicció de branca o BPU que s'utilitza per emmagatzemar dades anteriors per guiar el processador RISC V per decidir si es pren una branca específica o no. Aquestes dades de predicció simplement s'actualitzen un cop s'executa la branca.
Aquesta unitat inclou diferents paràmetres que determinen el seu comportament. Per exemple, HAS_BPU s'utilitza per determinar si una branca prediu que hi ha una unitat, BPU_GLOBAL_BITS determinarà quants bits passats s'han d'utilitzar i BPU_LOCAL_BITS determinarà quants dels LSB del comptador del programa s'han d'utilitzar. La combinació de BPU_LOCAL_BITS i BPU_GLOBAL_BITS crearà un vector que s'utilitza principalment per abordar la taula de predicció de branques.
Memòria cau de dades
Això s'utilitza principalment per accelerar l'accés a la memòria de dades mitjançant la memòria intermèdia de les ubicacions de memòria a les quals s'ha accedit recentment. Això és capaç de gestionar els accessos de mitja paraula, byte i paraula quan XLEN = 32 si es troben als seus propis límits. També és capaç de gestionar accessos de mitja paraula, byte, paraula i paraula doble quan XLEN=64 si es troben als seus propis límits.
Durant una pèrdua de memòria cau, es pot escriure un bloc sencer a la memòria, de manera que, si cal, es pot carregar un bloc nou a la memòria cau. La memòria cau de dades es desactiva posant DCACHE_SIZE a zero. Després d'això, s'accedeix a les ubicacions de memòria directament a través de Interfície de dades .
Memòria cau d'instruccions
Això s'utilitza principalment per accelerar l'obtenció d'instruccions mitjançant l'emmagatzematge d'instruccions recentment obtingudes. Aquesta memòria cau s'utilitza per obtenir una parcel·la per cada cicle en qualsevol límit de 16 bits, però no a través d'un límit de bloc. Durant un error de memòria cau, es pot carregar un bloc sencer des de la memòria d'instruccions. La configuració d'aquesta memòria cau es pot fer en funció de les necessitats de l'usuari. La mida de la memòria cau, l'algorisme de substitució i la longitud del bloc es poden configurar.
El cicle d'instruccions es desactivarà establint ICACHE_SIZE a zero. Després d'això, els paquets s'obtenen directament de la memòria a través de Interfície d'instruccions.
Unitat de depuració
La unitat de depuració permetrà que l'entorn de depuració s'aturi i examini la CPU. Les característiques principals d'això són el seguiment de branques, el seguiment d'un sol pas fins a 8 punts d'interrupció de maquinari.
Fitxer de registre
Està dissenyat amb 32 ubicacions de registre de X0 a X31 on X9 Register és zero sempre. El fitxer de registre inclou 1 port d'escriptura i 2 ports de lectura.
Interfície configurable
Aquesta és una interfície externa on aquest processador admet diferents interfícies de bus externs.
Com funciona RISC V?
RISC-V és una arquitectura de conjunt d'instruccions arrelada dins dels principis RISC (ordinador de conjunt d'instruccions reduïts). Aquest processador és molt únic i també revolucionari, ja que és un ISA gratuït, comú i de codi obert on es pot desenvolupar maquinari, es pot portar el programari i es poden dissenyar processadors per donar-hi suport.
Diferència B/N RISC V vs MIPS
La diferència entre RISC V i MIPS inclou el següent.
RISC V |
MIPS |
El terme RISC V significa Reduced Instruction Set Computer on 'V' és la cinquena generació. | El terme 'MIPS' significa 'milions d'instruccions per segon'. |
RISC-V simplement permet als fabricants de dispositius més petits dissenyar maquinari sense pagar. | MIPS permet al fabricant mesurar la velocitat del processador pagant perquè no és gratuït. |
MIPS ha mort eficientment. | RISC-V no està mort de manera eficient. |
Aquest processador proporciona instruccions de branca per comparar dos registres. | MIPS depèn d'una instrucció de comparació que localitza un registre a 1 o 0 en funció de si el contrast és cert. |
L'esquema de codificació ISA és fix i variable a RISC V. | L'esquema de codificació ISA està fixat en MIPS |
La mida del conjunt d'instruccions és de 16 bits o 32 bits o 64 bits o 128 bits. | La mida del conjunt d'instruccions és de 32 o 64 bits. |
Té 32 registres de propòsit general i de coma flotant | Té 31 registres de propòsit general i de coma flotant. |
Té 26 operacions de punt flotant de precisió simple i doble. | Té 15 operacions de punt flotant de precisió simple i doble. |
Diferència B/N RISC V vs ARM
La diferència entre RISC V vs ARM inclou el següent.
RISC V |
ARM |
RISC-V és de codi obert, de manera que no requereix cap llicència. | ARM és una font tancada, per la qual cosa necessita una llicència. |
És una plataforma de processador nova, de manera que hi ha un suport molt petit per a entorns de programació i programari. | ARM té una comunitat en línia molt gran, que admet biblioteques i estructures per ajudar els dissenyadors objectiu en diverses plataformes com microprocessadors, microcontroladors i també servidors. |
Els xips basats en V RISC utilitzen 1 watt de potència. | Els xips basats en ARM utilitzen menys de 4 watts de potència. |
Té un sistema de codificació ISA fix i variable. | Té un sistema de codificació ISA fix. |
La mida del conjunt d'instruccions RISC V oscil·la entre 16 bits i 128 bits. | La seva mida d'instrucció oscil·la entre 16 bits i 64 bits. |
Inclou 32 registres de propòsit general i de coma flotant. | Inclou 31 registres de propòsit general i de coma flotant. |
Té 26 operacions de punt flotant de precisió única. | Té 33 operacions de punt flotant de precisió única. |
Té 26 operacions de coma flotant de precisió doble. | Té 29 operacions de coma flotant de precisió doble. |
Codi RISC V Verilog
A continuació es mostra el codi de verilog de la memòria d'instruccions per a RISC.
// Codi Verilog per al processador RISC
// Codi Verilog per a la memòria d'instruccions
mòdul Instruction_Memory(
entrada[15:0] pc,
instrucció de sortida[15:0].
);
reg [`col – 1:0] memòria [`row_i – 1:0];
cable [3 : 0] rom_addr = pc[4 : 1];
inicial
començar
$readmemb(“./test/test.prog”, memòria,0,14);
final
assignar instruccions = memòria[rom_addr];
mòdul final
Codi Verilog per al processador RISC V de 16 bits:
mòdul Risc_16_bit(
entrada clk
);
salt de cable,bne,beq,mem_read,mem_write,alu_src,reg_dst,mem_to_reg,reg_write;
cable[1:0] alu_op;
cable [3:0] opcode;
// Camí de dades
Datapath_Unit DU
(
.clk(clk),
.saltar (saltar),
.granota (granota),
.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(codi operatiu)
);
// unitat de control
Control_Unitat de control
(
.opcode(codi operatiu),
.reg_dst(reg_dst),
.mem_to_reg(mem_to_reg),
.alu_op(alu_op),
.saltar (saltar),
.bne(bne),
.granota (granota),
.mem_read(mem_read),
.mem_write(mem_write),
.alu_src(alu_src),
.reg_write(reg_write)
);
mòdul final
Conjunts d'instruccions
Els conjunts d'instruccions RISC V es discuteixen a continuació.
Operacions aritmètiques
Les operacions aritmètiques RISC V es mostren a continuació.
Mnemotècnica | Tipus | Instrucció | Descripció |
AFEGEIX rd, rs1, rs2 |
R |
Afegeix | rdß rs1 + rs2 |
SUB rd, rs1, rs2 |
R |
Sostreure | rdß rs1 – rs2 |
ADDI rd, rs1, imm12 |
jo |
Afegeix immediatament | rdß rs1 + imm12 |
SLT rd, rs1, rs2 |
R |
Establir menys de | rdß rs1 -< rs2 |
SLTI rd, rs1, imm12 |
jo |
Establir menys que immediat | rdß rs1 -< imm12 |
SLTU rd, rs1, rs2 |
R |
Estableix menys que sense signar | rdß rs1 -< rs2 |
SLTIU rd, rs1, imm12 |
jo |
Estableix menys que immediat sense signar | rdß rs1 -< imm12 |
LUI rd, imm20 |
EN |
Càrrega superior immediata | rdß imm20<<12 |
AUIP rd,imm20 |
EN |
Afegeix la part superior immediata al PC | rdß PC+imm20<<12 |
Operacions lògiques
Les operacions lògiques RISC V es mostren a continuació.
Mnemotècnica | Tipus | Instrucció | Descripció |
I rd, rs1, rs2 |
R |
I | rdß rs1 i rs2 |
O rd, rs1, rs2 |
R |
O | rdß rs1 | rs2 |
XOR rd, rs1, rs2 |
R |
GRATIS | rdß rs1 ^ rs2 |
ANDI rd, rs1, imm12 |
jo |
I immediat | rdß rs1 i imm2 |
ORI rd, rs1, imm12 |
jo |
O Immediatament | rdß rs1 | imm12 |
OXRI rd, rs1, imm12 |
jo |
XOR immediat | rdß rs1 ^ rs2 |
SLL rd, rs1, rs2 |
R |
Canvi lògic a l'esquerra | rdß rs1 << rs2 |
SRL rd, rs1, rs2 |
R |
Desplaçament cap a la dreta lògic | rdß rs1 >> rs2 |
SRA rd, rs1, rs2 |
R |
Desplaça a la dreta l'aritmètica | rdß rs1 >> rs2 |
SLLI rd, rs1, shamt |
jo |
Canvi lògic a l'esquerra immediatament | rdß rs1 << shamt |
SRLI rd, rs1, shamt |
jo |
Desplaçament cap a la dreta immediatament lògic | rdß rs1 >> shamt |
SRAI rd, rs1, shamt |
jo |
Desplaça a la dreta immediatament aritmètica | rdß rs1 >> shamt |
Operacions de càrrega/emmagatzematge
Les operacions de càrrega/emmagatzematge de RISC V s'enumeren a continuació.
Mnemotècnica | Tipus | Instrucció | Descripció |
LD rd, imm12 (rs1) |
jo |
Carrega doble paraula | rdß mem [rs1 +imm12] |
LW rd, imm12 (rs1) |
jo |
Carrega la paraula | rdß mem [rs1 +imm12] |
LH rd, imm12 (rs1) |
jo |
Carregueu a mig camí | rdß mem [rs1 +imm12] |
LB rd, imm12 (rs1) |
jo |
Carrega byte | rdß mem [rs1 +imm12] |
LWU rd, imm12 (rs1) |
jo |
Carrega la paraula sense signar | rdß mem [rs1 +imm12] |
LHU rd, imm12 (rs1) |
jo |
Carrega mitja paraula sense signar | rdß mem [rs1 +imm12] |
LBU rd, imm12 (rs1) |
jo |
Carrega el byte sense signar | rdß mem [rs1 +imm12] |
SD rs2, imm12 (rs1) |
S |
Emmagatzema doble paraula | rs2 a mem [rs1 + imm12] |
SW rs2, imm12 (rs1) |
S |
Emmagatzema paraula | rs2 (31:0) a mem [rs1 + imm12] |
SH rs2, imm12 (rs1) |
S |
Emmagatzemar a mig camí | rs2 (15:0) a mem [rs1 + imm12] |
SB rs2, imm12 (rs1) |
S |
Emmagatzema byte | rs2 (15:0) a mem [rs1 + imm12] |
SRAI rd, rs1, shamt |
jo |
Desplaça a la dreta immediatament aritmètica | rs2 (7:0) a mem [rs1 + imm12] |
Operacions de ramificació
Les operacions de ramificació RISC V es detallen a continuació.
Mnemotècnica | Tipus | Instrucció | Descripció |
BEQ rs1, rs2, imm12 |
SB |
Branca igual | Si rs1== rs2 PC ß PC+imm12 |
BNE rs1, rs2, imm12 |
SB |
Branca no igual | Si rs1!= rs2 PC ß PC+imm12 |
BGE rs1, rs2, imm12 |
SB |
Branca major o igual | Si rs1>= rs2 PC ß PC+imm12 |
BGEU rs1, rs2, imm12 |
SB |
Sucursal superior o igual a sense signar | Si rs1>= rs2 PC ß PC+imm12 |
BLT rs1, rs2, imm12 |
SB |
Branca menys que | Si rs1 |
BLTU rs1, rs2, imm12 |
SB |
Sucursal inferior a sense signar | Si rs1 |
JAL rd, imm20 |
UJ |
Salta i enllaça | rdßPC+4 PCß PC+imm20 |
JALR rd, imm12(rs1) |
jo |
Jump and Link registre | rdßPC+4 PCß rs1+imm12 |
Avantatges
El avantatges del RISC Processador V incloure el següent.
- Mitjançant l'ús de RISCV, podem estalviar temps de desenvolupament, desenvolupament de programari, verificació, etc.
- Aquest processador té molts avantatges com la simplicitat, l'obertura, la modularitat, el disseny net i l'extensibilitat.
- Això és compatible amb diversos compiladors de llenguatge com el GCC (GNU Compiler Collection), un compilador de programari lliure i mitjançant el OS Linux .
- Això pot ser utilitzat per les empreses lliurement perquè no hi ha drets d'autor, no hi ha comissions de llicència i no hi ha cadenes connectades.
- El processador RISC-V no inclou cap funció nova o innovadora perquè simplement segueix els principis establerts de RISC.
- De manera similar a altres ISA, aquesta especificació del processador simplement defineix diversos nivells de conjunt d'instruccions. Per tant, conté variants de 32 i 64 bits, així com extensions per donar suport a instruccions de coma flotant.
- Aquests són gratuïts, senzills, modulars, estables, etc.
Desavantatges
El desavantatges del processador RISC V incloure el següent.
- Els compiladors i programadors utilitzen sovint instruccions complexes.
- L'o/p d'un RISC pot canviar segons el codi quan les instruccions posteriors dins d'un bucle depenen de la instrucció anterior per a l'execució.
- Aquests processadors han de desar una varietat d'instruccions ràpidament, cosa que requereix un conjunt de memòria cau gran per respondre a les instruccions de manera oportuna.
- Les característiques, capacitats i avantatges completes de RISC depenen principalment de l'arquitectura.
Aplicacions
El aplicacions del RISC V processador incloure el següent.
- RISC-V s'utilitza en sistemes integrats, intel·ligència artificial i aprenentatge automàtic.
- Aquests processadors s'utilitzen en aplicacions de sistemes encastats basats en alt rendiment.
- Aquest processador és adequat per utilitzar-lo en alguns camps concrets, com ara la informàtica de punta, la intel·ligència artificial i les aplicacions d'emmagatzematge.
- RISC-V és important, ja que permet als fabricants de dispositius més petits dissenyar maquinari sense pagar.
- Aquest processador simplement permet als investigadors i desenvolupadors dissenyar i investigar amb una arquitectura ISA o de conjunt d'instruccions disponible gratuïtament.
- Les aplicacions de RISC V van des de petits microcontroladors integrats fins a ordinadors d'escriptori i superordinadors, inclosos els processadors vectorials.
Així, això és una visió general d'un processador RISC V – arquitectura, treball amb aplicacions. Aquí teniu una pregunta: què és un processador CISC?