Qué es el procesador RISC V: arquitectura, funcionamiento y sus aplicaciones

Pruebe Nuestro Instrumento Para Eliminar Los Problemas





RISC V es una arquitectura de conjunto de instrucciones desarrollada por la Universidad de California, Berkeley. El concepto de RISC fue motivado por el hecho de que la mayoría de las instrucciones del procesador no fueron utilizadas por la mayoría de los programas informáticos. Por lo tanto, la lógica de decodificación innecesaria se estaba utilizando en los diseños de procesadores , consumiendo más energía y área. Para acortar el conjunto de instrucciones e invertir más dentro de los recursos de registro, el Procesador RISC V Fue implementado.


Esta tecnología fue notada por muchos gigantes tecnológicos y nuevas empresas porque es completamente de código abierto y gratuito. La mayoría de los tipos de procesadores están disponibles con un acuerdo de licencia, sin embargo, con este tipo de procesador; cualquiera puede hacer sus nuevos diseños de procesador. Entonces, este artículo analiza una descripción general de un procesador RISC V: su funcionamiento y sus aplicaciones.



¿Qué es el procesador RISC V?

En el procesador RISC V, el término RISC significa 'computadora de conjunto de instrucciones reducido' que ejecuta pocas instrucciones de computadora, mientras que 'V' significa la quinta generación. Es una ISA (arquitectura de conjunto de instrucciones) de hardware de código abierto basada en el principio establecido de RIESGO .

En comparación con otros diseños de ISA, este ISA está disponible con una licencia de código abierto. Por lo tanto, varias empresas de fabricación han anunciado y también han proporcionado hardware RISC-V, con sistemas operativos de código abierto.



Esta es una nueva arquitectura y está disponible en licencias abiertas, no restrictivas y gratuitas. Este procesador cuenta con un amplio apoyo de las industrias de fabricantes de chips y dispositivos. Por lo tanto, está diseñado principalmente para ser libremente extensible y personalizable para usar en muchas aplicaciones.

Historia de RISC V

El RISC fue inventado por el Prof. David Patterson alrededor de 1980 en la Universidad de California, Berkeley. El Prof. David con el Prof. John Hennessy presentaron sus esfuerzos en dos libros, a saber, 'Organización y diseño de computadoras' y 'Arquitectura de computadoras en la Universidad de Stanford'. Entonces, recibieron el ACM A.M. Premio Turing en el año 2017.

Desde el año 1980 hasta el año 2010, se inició la investigación de desarrollo de quinta generación de RISC y finalmente se identificó como RISC-V, que se pronuncia como riesgo cinco.

RISC V Arquitectura y Trabajo

La arquitectura RV12 RISC V se muestra a continuación. El RV12 es altamente configurable con una CPU RISC compatible con RV32I y RV64I de un solo núcleo que se utiliza en campos integrados. El RV12 también pertenece a una familia de CPU de 32 o 64 bits, según el conjunto de instrucciones RISC-V del estándar industrial.

El RV12 simplemente ejecuta una arquitectura Harvard para el acceso simultáneo a la instrucción y a la memoria de datos. También incluye una canalización de 6 etapas que ayuda a optimizar las superposiciones entre la ejecución y los accesos a la memoria para mejorar la eficiencia. Esta arquitectura incluye principalmente predicción de bifurcación, caché de datos, unidad de depuración, caché de instrucciones y unidades multiplicadoras o divisoras opcionales.

  Arquitectura del procesador RISC
Arquitectura del procesador RISC

Las características principales de RV12 RISC V incluyen lo siguiente.

  • Es un conjunto de instrucciones estándar de la industria.
  • Parametrizado con datos de 32 o 64 bits.
  • Tiene interrupciones precisas y rápidas.
  • Las instrucciones personalizadas permiten agregar aceleradores de hardware patentados.
  • Ejecución de ciclo único.
  • Tubería de seis etapas con plegado de optimización.
  • Soporte con protección de memoria.
  • Cachés opcionales o parametrizados.
  • Extremadamente parametrizado.
  • Los usuarios pueden seleccionar datos de 32/64 bits y unidad de predicción de sucursales.
  • Los usuarios pueden seleccionar cachés de instrucciones/datos.
  • Estructura, tamaño y arquitectura de caché seleccionables por el usuario.
  • Compatibilidad con divisor o multiplicador de hardware por latencia definida por el usuario.
  • La arquitectura del autobús es flexible y admite Wishbone y AHB.
  • Este diseño optimiza la potencia y el tamaño.
  • El diseño está completamente parametrizado, lo que proporciona compensaciones de rendimiento o potencia.
  • Diseño CLK cerrado para disminuir la potencia.
  • Soporte de software por estándar de la industria.
  • Simulador arquitectónico.
  • Eclipse IDE se utiliza para Linux/Windows.

El canal de ejecución de RISC V

Incluye cinco etapas como IF (búsqueda de instrucciones), ID (decodificación de instrucciones), EX (ejecución), MEM (acceso a memoria) y WB (reescritura de registros).

Obtención de instrucciones

En la etapa de obtención de instrucciones o IF, se lee una sola instrucción del contador de programa (PC) y la memoria de instrucciones, que se actualiza a la siguiente instrucción.

Instrucción Pre-Decodificación

Una vez que se permite el soporte de RVC, la etapa de decodificación previa de instrucciones decodificará una instrucción comprimida de 16 bits en una instrucción nativa de 32 bits.

Decodificación de instrucciones

En la etapa de decodificación de instrucciones (ID), se permite el archivo de registro y se deciden los controles de omisión.

Ejecutar

En la etapa de ejecución, el resultado se calcula para una instrucción ALU, DIV, MUL, la memoria permitida para una instrucción de almacenamiento o carga, y las bifurcaciones y saltos se miden con respecto a los resultados esperados.

Memoria

En esta etapa de memoria, se accede a la memoria a través de la canalización. La inclusión de esta fase asegura el alto rendimiento del gasoducto.

Respóndeme

En esta etapa, el resultado de la etapa de Ejecución se registra en el Archivo de Registro.

Predictor de rama

Este procesador incluye una unidad predictora de bifurcación o BPU que se utiliza para almacenar datos anteriores para guiar al procesador RISC V a decidir si se toma o no una bifurcación específica. Estos datos predictores simplemente se actualizan una vez que se ejecuta la rama.

Esta unidad incluye diferentes parámetros que determinan su comportamiento. Por ejemplo, HAS_BPU se usa para determinar si una rama predice que una unidad está presente, BPU_GLOBAL_BITS determinará cuántos bits pasados ​​se deben usar y BPU_LOCAL_BITS determinará cuántos LSB del contador del programa se deben usar. La combinación de BPU_LOCAL_BITS y BPU_GLOBAL_BITS creará un vector que se utiliza principalmente para abordar la tabla de predicción de ramas.

caché de datos

Esto se utiliza principalmente para acelerar el acceso a la memoria de datos al almacenar en búfer las ubicaciones de memoria a las que se accede recientemente. Esto es capaz de manejar accesos de media palabra, byte y palabra cuando  XLEN = 32 si están en sus propios límites. También es capaz de manejar accesos de media palabra, byte, palabra y palabra doble cuando XLEN=64 si están en sus propios límites.

A lo largo de una pérdida de caché, se puede volver a escribir un bloque completo en la memoria, por lo que, si es necesario, se puede cargar un nuevo bloque en el caché. La caché de datos se desactiva al establecer DCACHE_SIZE en cero. Después de eso, se accede directamente a las ubicaciones de la memoria a través del Interfaz de datos .

Caché de instrucciones

Esto se utiliza principalmente para acelerar la obtención de instrucciones al almacenar en búfer las instrucciones recién obtenidas. Este caché se utiliza para obtener una parcela para cada ciclo en cualquier límite de 16 bits, pero no a través de un límite de bloque. Durante un error de caché, se puede cargar un bloque completo desde la memoria de instrucciones. La configuración de esta caché se puede realizar en función de las necesidades del usuario. El tamaño de la memoria caché, el algoritmo de reemplazo y la longitud del bloque se pueden configurar.

El ciclo de instrucción se deshabilitará configurando ICACHE_SIZE a cero. Después de eso, los paquetes se recuperan directamente de la memoria a través del Interfaz de instrucción.

Unidad de depuración

La unidad de depuración permitirá que el entorno de depuración se detenga y examine la CPU. Las características principales de esto son el seguimiento de ramas, el seguimiento de un solo paso hasta 8 puntos de interrupción de hardware.

Registrar archivo

Esto está diseñado con 32 ubicaciones de registro de X0 a X31 donde el registro X9 es cero siempre. El archivo de registro incluye 1 puerto de escritura y 2 puertos de lectura.

Interfaz configurable

Esta es una interfaz externa donde este procesador admite diferentes interfaces de bus externo.

¿Cómo funciona RISC V?

RISC-V es una arquitectura de conjunto de instrucciones basada en los principios de RISC (computadora con conjunto de instrucciones reducido). Este procesador es único y también revolucionario, ya que es un ISA gratuito, común y de código abierto en el que se puede desarrollar hardware, se puede portar el software y se pueden diseñar procesadores para soportarlo.

Diferencia B/N RISC V Vs MIPS

La diferencia entre RISC V y MIPS incluye lo siguiente.

RISC V

MIPS

El término RISC V significa Computadora con conjunto de instrucciones reducido, donde 'V' es la quinta generación. El término 'MIPS' significa 'millones de instrucciones por segundo'.
RISC-V simplemente permite a los fabricantes de dispositivos más pequeños diseñar hardware sin pagar. MIPS permite al fabricante medir la velocidad del procesador pagando porque no es gratis.
MIPS está eficientemente muerto. RISC-V no está eficientemente muerto.
Este procesador proporciona instrucciones de bifurcación para comparar dos registros. MIPS depende de una instrucción de comparación que ubica un registro en 1 o 0 en función de si el contraste es verdadero.
El esquema de codificación ISA es fijo y variable en RISC V. El esquema de codificación ISA está arreglado en MIPS
El tamaño del conjunto de instrucciones es de 16 bits, 32 bits, 64 bits o 128 bits. El tamaño del conjunto de instrucciones es de 32 o 64 bits.
Tiene 32 registros de punto flotante y de propósito general Tiene 31 registros de punto flotante y de propósito general.
Tiene 26 operaciones de punto flotante de precisión simple y doble. Tiene 15 operaciones de punto flotante de precisión simple y doble.

Diferencia B/N RISC V Vs ARM

La diferencia entre RISC V Vs ARM incluye lo siguiente.

RISC V

BRAZO

RISC-V es de código abierto, por lo que no requiere ninguna licencia. ARM es un código cerrado, por lo que necesita una licencia.
Es una nueva plataforma de procesador, por lo que hay muy poco soporte para software y entornos de programación. ARM tiene una comunidad en línea muy grande, que admite bibliotecas y estructuras para ayudar a los diseñadores objetivo en varias plataformas como microprocesadores, microcontroladores y también servidores.
Los chips basados ​​en RISC V utilizan 1 vatio de potencia. Los chips basados ​​en ARM usan menos de 4 vatios de potencia.
Tiene un sistema de codificación ISA fijo y variable. Dispone de un sistema de codificación ISA fijo.
El tamaño del conjunto de instrucciones RISC V varía de 16 bits a 128 bits. Su tamaño de instrucción varía de 16 bits a 64 bits.
Incluye 32 registros de punto flotante y de propósito general. Incluye 31 registros de punto flotante y de propósito general.
Tiene 26 operaciones de punto flotante de precisión simple. Tiene 33 operaciones de punto flotante de precisión simple.
Tiene 26 operaciones de punto flotante de precisión doble. Tiene 29 operaciones de punto flotante de precisión doble.

Código Verilog RISC V

El código verilog de la memoria de instrucciones para RISC se muestra a continuación.

// código Verilog para el procesador RISC
// Código Verilog para memoria de instrucciones

módulo Instrucción_Memoria(
entrada [15:0] pc,
instrucción de salida [15:0]
);

registro [`col – 1:0] memoria [`row_i – 1:0];
cable [3 : 0] rom_addr = pc[4 : 1];
inicial
empezar
$readmemb(“./prueba/prueba.prog”, memoria,0,14);
final
asignar instrucción = memoria[rom_addr];

módulo final

Código Verilog para el procesador RISC V de 16 bits:

módulo Risc_16_bit(
reloj de entrada
);

salto 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] código de operación;

// Ruta de datos

Datapath_Unit DU
(
.clk(clk),
.Salta Salta),
.rana(rana),
.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(código de operación)
);

// unidad de control
Control de unidad de control
(
.opcode(código de operación),
.reg_dst(reg_dst),
.mem_to_reg(mem_to_reg),
.alu_op(alu_op),
.Salta Salta),
.bne(bne),
.rana(rana),
.mem_read(mem_read),
.mem_write(mem_write),
.alu_src(alu_src),
.reg_write(reg_write)
);
módulo final

Conjuntos de instrucciones

Los conjuntos de instrucciones RISC V se analizan a continuación.

Operaciones aritmeticas

Las operaciones aritméticas RISC V se enumeran a continuación.

Mnemotécnico Escribe Instrucción Descripción
AÑADIR rd, rs1, rs2

R

Agregar rdß rs1 + rs2
SUB rd, rs1, rs2

R

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

yo

Añadir inmediato rdß rs1 + imm12
SLT rd, rs1, rs2

R

Establecer menos de rdß rs1 -< rs2
SLTI rd, rs1, imm12

yo

Establecer menos que inmediato rdß rs1 -< imm12
SLTU rd, rs1, rs2

R

Establecer menos que sin firmar rdß rs1 -< rs2
SLTIU rd, rs1, imm12

yo

Establecer menos que inmediato sin firmar rdß rs1 -< imm12
LUI rd, imm20

EN

Carga superior inmediata rdß imm20<<12
AUIP rd, imm20

EN

Agregar inmediato superior a la PC rdß PC+imm20<<12

Operaciones lógicas

Las operaciones lógicas de RISC V se enumeran a continuación.

Mnemotécnico Escribe Instrucción Descripción
Y rd, rs1, rs2

R

Y rdß rs1 y rs2
O rd, rs1, rs2

R

O rdß rs1 | rs2
XOR rd, rs1, rs2

R

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

yo

Y inmediato rdß rs1 & imm2
ORI rd, rs1, imm12

yo

O Inmediato rdß rs1 | imm12
OXRI rd, rs1, imm12

yo

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

R

Desplazamiento lógico a la izquierda rdß rs1 <<  rs2
SRL rd, rs1, rs2

R

Desplazamiento lógico a la derecha rdß rs1 >>  rs2
SRA rd, rs1, rs2

R

Desplazar aritmética a la derecha rdß rs1 >>  rs2
SLLI rd, rs1, falso

yo

Desplazamiento a la izquierda lógico inmediato rdß rs1 << impostor
SRLI rd, rs1, falso

yo

Desplazamiento a la derecha lógico inmediato rdß rs1 >> farsa
SRAI rd, rs1, falso

yo

Desplazamiento aritmético inmediato a la derecha rdß rs1 >> farsa

Operaciones de carga/almacenamiento

Las operaciones de carga/almacenamiento de RISC V se enumeran a continuación.

Mnemotécnico Escribe Instrucción Descripción
LD rd, imm12 (rs1)

yo

Cargar palabra doble rdß mem [rs1 +imm12]
LW rd, imm12 (rs1)

yo

Cargar palabra rdß mem [rs1 +imm12]
LH rd, imm12 (rs1)

yo

Cargar a la mitad rdß mem [rs1 +imm12]
LB rd, imm12 (rs1)

yo

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

yo

Cargar palabra sin firmar rdß mem [rs1 +imm12]
LHU rd, imm12 (rs1)

yo

Cargar media palabra sin firmar rdß mem [rs1 +imm12]
LBU rd, imm12 (rs1)

yo

Cargar byte sin firmar rdß mem [rs1 +imm12]
SD rs2, imm12 (rs1)

S

Almacenar palabra doble rs2 a memoria [rs1 +imm12]
SW rs2, imm12 (rs1)

S

Almacenar palabra rs2 (31:0) a memoria [rs1 +imm12]
SH rs2, imm12 (rs1)

S

Almacenar a mitad de camino rs2 (15:0) a memoria [rs1 +imm12]
SB rs2, imm12 (rs1)

S

Almacenar byte rs2 (15:0) a memoria [rs1 +imm12]
SRAI rd, rs1, falso

yo

Desplazamiento aritmético inmediato a la derecha rs2 (7:0) a memoria [rs1 +imm12]

Operaciones de ramificación

Las operaciones de ramificación de RISC V se enumeran a continuación.

Mnemotécnico Escribe Instrucción Descripción
BEQ rs1, rs2, imm12

SB

rama igual Si rs1== rs2

PC ß PC+imm12

BNE  rs1, rs2, imm12

SB

Rama no igual Si rs1!= rs2

PC ß PC+imm12

BGE rs1, rs2, imm12

SB

Rama mayor o igual Si rs1>= rs2

PC ß PC+imm12

BGEU rs1, rs2, imm12

SB

Rama mayor o igual que sin firmar Si rs1>= rs2

PC ß PC+imm12

BLT rs1, rs2, imm12

SB

Rama menos de Si rs1 < rs2

PC ß PC+imm12

BLTU rs1, rs2, imm12

SB

Sucursal menor que  sin firmar Si rs1 < rs2

PC ß PC+imm12 <<1

JAL rd, imm20

UJ

Saltar y vincular rdßPC+4
PCß PC+imm20
JALR rd, imm12(rs1)

yo

Saltar y vincular registro rdßPC+4
PCß rs1+imm12

Ventajas

los ventajas del RISC procesador V Incluya lo siguiente.

  • Al usar RISCV, podemos ahorrar tiempo de desarrollo, desarrollo de software, verificación, etc.
  • Este procesador tiene muchas ventajas como la simplicidad, la apertura, la modularidad, el diseño de borrón y cuenta nueva y la extensibilidad.
  • Esto es compatible con varios compiladores de lenguajes como GCC (GNU Compiler Collection), un compilador de software libre y mediante el sistema operativo Linux .
  • Esto puede ser utilizado por las empresas libremente sin regalías, sin tarifas de licencia y sin ataduras.
  • El procesador RISC-V no incluye ninguna característica nueva o innovadora porque simplemente sigue los principios establecidos de RISC.
  • Al igual que otras ISA, esta especificación de procesador simplemente define varios niveles de conjunto de instrucciones. Esto contiene variantes de 32 y 64 bits, así como extensiones para dar soporte a las instrucciones de coma flotante.
  • Estos son gratuitos, simples, modulares, estables, etc.

Desventajas

los desventajas del procesador RISC V Incluya lo siguiente.

  • Los compiladores y programadores utilizan con frecuencia instrucciones complejas.
  • El o/p de un RISC puede cambiar según el código cuando las instrucciones posteriores dentro de un bucle dependen de la instrucción anterior para su ejecución.
  • Estos procesadores necesitan guardar una variedad de instrucciones rápidamente, lo que requiere un gran conjunto de memoria caché para responder a la instrucción de manera oportuna.
  • Las características, capacidades y beneficios completos de RISC dependen principalmente de la arquitectura.

Aplicaciones

los aplicaciones del RISC V procesador Incluya lo siguiente.

  • RISC-V se utiliza en sistemas integrados, inteligencia artificial y aprendizaje automático.
  • Estos procesadores se utilizan en aplicaciones de sistemas integrados basados ​​en alto rendimiento.
  • Este procesador es apropiado para usar en algunos campos particulares, como la computación perimetral, la IA y las aplicaciones de almacenamiento.
  • RISC-V es importante ya que permite a los fabricantes de dispositivos más pequeños diseñar hardware sin pagar.
  • Este procesador simplemente permite a los investigadores y desarrolladores diseñar e investigar con una arquitectura ISA o de conjunto de instrucciones disponible gratuitamente.
  • Las aplicaciones de RISC V van desde pequeños microcontroladores integrados hasta PC de escritorio y supercomputadoras, incluidos los procesadores vectoriales.

Así, esto es una descripción general de un procesador RISC V – arquitectura, trabajando con aplicaciones. Aquí hay una pregunta para usted, ¿qué es un procesador CISC?