Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Risc V
Risc V
Risc V
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
A ATÓMICA ESTÁNDAR
F PUNTO FLOTANTE DE PRECISIÓN SIMPLE
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
Multiplicación:
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.
[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.