Risc V

También podría gustarte

Está en la página 1de 52

Procesador

Integrantes:
-Andrea Paola Barrera
- Angel David Hurtado
- Jeisson Poveda
Es una arquitectura de conjunto de instrucciones de hardware
libre, basado en un diseño tipo RISC.
Hasta tal punto es real el funcionamiento de RISC-V que ya existen
empresas que centran su negocio en la construcción de este procesador.
La empresa más prometedora que utiliza RISC-V se llama SiFive, una
empresa que centra su modelo de negocio en el procesador, pero no
cobrando por el procesador sino por su construcción o distribución. Otras
empresas importantes se han interesado por este procesador, empresas
como Microsoft, Google o Nvidia.
Fundada en 2015, la Fundación RISC-V está compuesta por
más de 325 miembros que construyen la primera comunidad
abierta y colaborativa de innovadores de software y hardware
que impulsan la innovación en la vanguardia.
ISA (instruction set architecture)
ISA completamente abierta con disponibilidad gratuita para la academia y la industria.

Ningún otro ISA está diseñado como el RISC-V ISA, lo que permite la extensibilidad de la
arquitectura por parte del usuario sin romper las extensiones existentes o incurrir en
fragmentación de software

Un ISA totalmente virtualizable para facilitar el desarrollo del hipervisor

Instrucciones opcionales de longitud variable para expandir el espacio de codificación de


instrucciones disponible y para admitir una codificación de instrucciones densas opcional
para mejorar el rendimiento, el tamaño del código estático,y eficiencia energética.

La fuente abierta de hardware, RISC-V no depende de un solo proveedor: ofrece múltiples


proveedores, por lo tanto, admite un potencial ilimitado para el crecimiento futuro.
Cada conjunto de instrucciones de enteros base se
caracteriza por el ancho de los registros de enteros
y el tamaño correspondiente del espacio de
direcciones del usuario. Hay dos variantes enteras
de base primaria, RV32I y RV64I.
que proporcionan espacios de direcciones de nivel
de usuario de 32 bits o 64 bits respectivamente.
Las instrucciones no se pueden redefinir. Dividen las
extensiones del conjunto de instrucciones RISC-V en
extensiones ESTÁNDAR y NO ESTANDAR. Las
extensiones estándar deberían ser generalmente útiles y
no deberían entrar en conflicto.
EXTENSIÓN ESTÁNDAR

I CALCULO DE NUMEROS ENTEROS

M DIVISION Y MULTIPLICACION DE NUMEROS ENTEROS

A ATÓMICA ESTÁNDAR
F PUNTO FLOTANTE DE PRECISIÓN SIMPLE

D PUNTO FLOTANTE DE PRECISIÓN DOBLE

G INSTRUCCIONES ESCALARES DE USO GENERAL


Formato de Instrucciones RV32I

tipo Formato de instruccion

R Operaciones entre registros

I Inmediatos cortos y cargas

S Stores

B Branches

U inmediatos largos

J Saltos incondicionales
Las letras subrayadas son
concatenadas de izquierda a
derecha para formar
instrucciones RV32I. La
notación de llaves { } implica
que cada ítem vertical en el
conjunto es una variante
distinta de la instrucción. El
guión bajo _ en un conjunto
significa que una opción es
simplemente el nombre de la
instrucción hasta el
momento, sin agregar letras
de este conjunto.
Formato de instrucciones RISC-V. cada subcampo inmediato con la posición del bit
(imm[x]) en el valor inmediato producido, en vez de la acostumbrada posición del bit en el
campo inmediato de la instrucción.
El mapa de opcodes de
RV32I
tiene la estructura de la
instrucción, opcodes,
tipo de formato y
nombres
Ejemplo
x & 0xfffffff0 usa únicamente la instrucción andi en RISC-V, pero requiere dos
instrucciones en MIPS-32 (addiu para cargar la constante, luego and), dado que
MIPS extiende con cero los inmediatos lógicos. ARM- 32 tenía que agregar una
instrucción adicional, bic, que ejecuta rx & inmediato para compensar la extensión
con ceros.
Mnemónicos de ensamblador para registros enteros y de punto
flotante en RISC-V. RISC-V
pseudo-instrucciones de
RISC-V que dependen
de x0, el registro cero
28 pseudoinstrucciones de
RISC-V que son
independientes de x0, el
registro cero.
Reserva de memoria para el programa y datos
en RV32I. Las direcciones más altas aparecen
en la parte superior de la figura y las direcciones
más bajas en la parte inferior. En esta
convención del software de RISC-V, el stack
pointer (sp) comienza en bfff fff0hex y crece
hacia abajo hacia el área de Static data. El área
de text (código del programa) comienza en 0001
0000hex e incluye las librerías linkeadas
estáticamente.
El área de Static data comienza inmediatamente
después del área de text; en este ejemplo,
asumimos que es la dirección 1000 0000hex.
Los datos dinámicos, reservados en C usando
malloc(), están justo después del Static data.
Llamado el heap, crece hacia el área de stack e
incluye las librerías linkeadas dinámicamente.
Directivas comunes del
ensamblador de RISC-
V.
• Espacio de memoria de 32 bits direccionable por bytes
• Todas las instrucciones son de 32 bits
• 31 registros, todos de 32 bits, y el registro 0 alambrado a cero
• Todas las operaciones son entre registros (ninguna es de registro a memoria)
• Load/Store word, más load/store byte y halfword (signed y unsigned)
• Opción de inmediatos en todas las instrucciones aritméticas, lógicas y de
corrimientos
• A los valores inmediatos siempre se les hace sign-extension
• Un modo de direccionamiento (registro + inmediato) y branching relativo al PC
• No hay instrucciones de multiplicación ni división
• Una instrucción que carga un valor inmediato de 20 bits a la parte alta del
registro para cargar una constante de 32 bits en 2 instrucciones
División

Cociente = (Dividendo - Residuo) /Divisor

Dividendo = Cociente * Divisor + Residuo

Residuo = Dividendo - (Cociente * Divisor)

Multiplicación:

Producto = Multiplicando *Multiplicador


Multiplicación
Es más complicado que la división porque el tamaño del producto es la suma del
tamaño del multiplicador y el multiplicando; multiplicar dos números de 32 bits
produce un producto de 64 bits. Para producir un número de 64 bits apropiado,
RISC-V cuenta con cuatro instrucciones de multiplicación. Para obtener el
producto de 32 bits—la parte baja del producto total—se usa mul. Si ambos
operandos son números con signo, se usa mulh para obtener los 32 bits de la
parte alta, se usa mulhu si ambos operandos son unsigned y mulhsu si un
número es signed y el otro unsigned.
El mapa de opcodes de RV32M tiene el formato: opcodes, tipo de formato y
nombres
Registro de control y estado de punto flotante. Almacena el modo de redondeo y las banderas de
excepciones. Los modos de redondeo son: aproximar al más cercano, empate hacia par (rte, 000 en frm);
aproximar hacia cero (rtz, 001); aproximar hacia abajo, hacia -infinito (rdn, 010); aproximar hacia arriba,
hacia infinito (rup, 011); y aproximar al más cercano, empate a máxima magnitud (rmm, 100). Las cinco
banderas de excepción indican las condiciones de excepción acumuladas en cualquier operación de
punto flotante desde la última vez que el campo fue restablecido por software: NV es Operación Inválida;
DZ es División entre Cero; OF es Overflow; UF es Underflow; y NX es Inexacto
Las instrucciones AMO ejecutan
atómicamente una operación a un
operando en memoria y
almacenan en el registro destino
el valor original en memoria.
Atómico significa que no puede
haber interrupciones entre la
lectura y escritura a memoria,
tampoco otros procesadores
pueden modificar los valores de
memoria entre la lectura y
escritura de la instrucción AMO
ventajas
● Escalan mejor en grandes sistemas de multiprocesamiento que load reserved
y store conditional.
● pueden usarse para implementar operaciones de reducción eficientemente
● son útiles para comunicarse con dispositivos de I/O, dado que ejecutan una
lectura y escritura en una sola transacción de bus atómica.
MEMORIA
RISC-V tiene un espacio de dirección direccionable por un solo byte de 2XLEN
bytes para todos los accesos a la memoria. Una palabra de memoria se define
como 32 bits (4 bytes). En consecuencia, una media palabra es de 16 bits (2
bytes), una palabra doble es de 64 bits (8 Bytes), y una palabra cuádruple es de
128 bits (16 bytes).

Cuando una plataforma RISC-V tiene múltiples harts, los espacios de direcciones
de dos harts pueden ser enteramente lo mismo, o completamente diferente, o
puede ser parcialmente diferente, pero compartiendo algún subconjunto de
recursos, mapeado en los mismos o Diferentes rangos de direcciones.
INSTRUCCIONES DE ACCESO A MEMORIA
Sólo se puede acceder a memoria usando dos tipos de instrucciones,
denominadas load y store.

- Instrucciones de load

lw,lh y lb

- Instrucciones de store

sw,sh y sb
MEMORIA VIRTUAL
El modo S provee un sistema convencional de memoria virtual que divide la
memoria en páginas de tamaño fijo con los propósitos de traducción de
direcciones y protección de memoria.

Los esquemas de paginación de RISC-V son nombrados SvX, donde X es el


tamaño de una dirección virtual en bits.
PAGINACIÓN EN 64BITS
RV64 soporta múltiples esquemas de paginación

El árbol tiene tres niveles

Cada gigapágina está subdividida en 29 megapáginas, las cuales en Sv39 son


ligeramente más pequeñas que en Sv32
Codificación del campo MODE en el SCR() Proceso de traducción de las
direcciones
DMA
MEMORIA CACHÉ
Para el CPU RV12 RISC-V de 32/64 bits

La caché de datos se usa para acelerar los accesos a la memoria de datos al


almacenar en búfer las ubicaciones de memoria a las que accedió recientemente.
U54MC
● Totalmente compatible RISC-V ISA ● 1x RV64IMAC S51 Monitor Core
● Nucleos de Aplicacion 4x RV64GC ○ 16KB L1 I-Cache con ECC
U54 ○ 8 KB DTIM con ECC
○ 32KB L1 I-cache con ECC ● Caché integrada 2MB L2 con ECC
○ 32KB L1 D-cache con ECC ● Capacidades en tiempo real
○ 48 interrupciones locales por ○ la caché de instrucciones L1 y
Nucleo caché L2 se pueden configurar
○ Sv39 Soporte de memoria en SRAM deterministas de alta
virtual con 38 bits de dirección velocidad.
física
TOOLCHAINS

tomado de:: https://riscv.org/software-status/


● Utilidades binarias de GNU , o binutils : Generalmente se
usan junto con compiladores como la Colección de
compiladores de GNU (gcc), herramientas de compilación
como make y el Depurador de GNU (gdb).
● LLVM( Low Level Virtual Machine) puede aceptar el IF
generado por la cadena de herramientas GCC, permitiendo así
que sea utilizado con todos los lenguages que a su vez son
aceptados por GCC.
● Cranelift: Es un proyecto similar a LLVM.
SISTEMAS OPERATIVOS
Compiladores
● GCC
● GNU MCU Eclipse RICS-V Embedded GCC.(riscv-non-embed-gcc)
● Clang/LLVM
● Glibc
● Newlib
● SEGGER Runtime Library
● Musl
● Go
Librerias C.
•GNU libc 2.20: Biblioteca C predeterminada para la cadena de
herramientas ELF de Linux.
•Newlib 1.18: Biblioteca C predeterminada para la cadena de
herramientas ELF genérica.Biblioteca más ligera con menos
dependencias del sistema operativo.
•Librerias son compatibles con ABI(Interfaz binaria para aplicaciones)
compatible : Newlib utiliza un pequeño subconjunto de sistema Linux
llamado ABI
Softcore
Si se implementa un softcore RISC-V en un FPGA, a
menudo el código fuente RTL está disponible. Dado que
RISC-V está libre de regalías, esto crea una flexibilidad
significativa para portar un diseño basado en RISC-V desde
un FPGA a un ASIC u otro FPGA sin ninguna modificación
de software.
Softcore Risc-V

Tomado de:www. microsemi.com/mi-v.


Hard IP RICS-V para PolarFire FPGA.
● SiFive : Desarrolla Hardware.
● SSyntacore: Proveedores de IP RISC-V. (SCR1 MCU).
● Andes Technology Corporation: N25 y NX25 en 2017.
● Codasip y UltraSoc: Núcleos.Depuración y optimización.
● GreenWaves Technologies: Disponibilidad de Controladores.
GAP8
● Hex Five: Entorno de ejecución confiable. Multizone Security.
● CloudBear: Construcción de procesadores.
Miembros Corporativos

Tomado de:Guia practica de Risc-V el atlas de una arquitectura


abierta. D. Patterson. A. Waterman
tomado de:https://riscv.org/risc-v-foundation/
tomado de:https://riscv.org/risc-v-foundation/
IMPLEMENTADO CON FPGA
REFERENCIAS

[1] J. G. Cobo, «hwlibre,» [En línea]. Available: https://www.hwlibre.com/risc-v-primer-


procesador-libre-proyectos/.

[2] A. W. David Patterson, «El Atlas de una Arquitectura Abierta,» de Guía Práctica de
RISC-V, Strawberry Canyon LLC, 2018, p. 2017.

[3] Etki Gür, Zekiye Eda Sataner, Yusuf H. Durkaya, Salih Bayar,«FPGA Implementation of
32-bit RISC-V Processor with Web-Based Assembler-Disassembler», Marmara University.

También podría gustarte