Què és el processador RISC V: arquitectura, treball i les seves aplicacions

Proveu El Nostre Instrument Per Eliminar Problemes





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.

  Arquitectura del processador RISC
Arquitectura del processador RISC

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 PC ß PC+imm12

BLTU  rs1, rs2, imm12

SB

Sucursal inferior a  sense signar Si rs1 PC ß PC+imm12 <<1

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?