INSTITUCIÓN UNIVERSITARIA POLITÉCNICO GRANCOLOMBIANO
“FACULTAD DE CIENCIAS ADMINISTRATIVAS, ECONÓMICAS Y
CONTABLES”
PROYECTO DE AULA
JOAN CAMILO OLMOS DURAN
ARQUITECTURA DEL COMPUTADOR
GABRIEL EDUARDO BUITRAGO AVILA.
BOGOTA D.C
2020
INTRODUCCIÓN.
En el presente documento se tratará de explicar y dar una breve documentación de una
nueva versión del software RISC, en este caso será la versión V, cabe aclarar que no es un
microprocesador propiamente dicho, es una serie de procesadores que son capaces de
ejecutar desde un juego hasta un programa para dicha arquitectura. Los procesadores RISC
fueron creados en la Universidad de Berkley en California. En uno de sus famosos libros
David Patterson definió la arquitectura RISC y del primer procesador.
A partir de RISC se creó MIPS y muchos otros profesores, por ejemplo, Open RISC, fue
uno de los primeros procesadores de código abierto funcional. RISC usa una serie de
instrucciones como lo son ISA (Instruction Set Architecture), las cuales le permite hacer
varias funciones, RISC-V se caracteriza por tener una seria de instrucciones de tamaño fijo,
haciendo que su costo sea bajo y que el procesamiento de instrucciones sea muy eficiente.
RISC-V es un código abierto para todo el público haciendo que toda persona relacionada
con sistemas y con electrónica tenga acceso a este software. Es un procesador tan potente
que puede ser usado en ordenadores, es apto para servidores, ordenadores móviles o
tabletas, un aspecto positivo de este procesador es que varias compañías de talla mundial
ofrecen soporte como Google, Qualcomm, Nvidia, IBM y Huawei, el avance del uso de
RISC-V ha sido tan grande que el instituto tecnológico de Massachusetts (MIT) ha
construido una CPU basada en la arquitectura de RISC-V usando únicamente nanotubos de
carbono.
En conclusión, la arquitectura de RISC-V ha generado varios avances, permitiendo que
mucha gente tenga la posibilidad de conocer esta arquitectura y el potencial que nos ofrece,
también ha ayudado con la creación de nuevas CPU basadas en su arquitectura, dando una
confiabilidad, educación a todo el público que lo usa.
QUE ES RISC-V.
Es una arquitectura de ISA (conjunto de instrucciones) de hardware libre, RISC-V es un
diseño de RISC, fue creado por la universidad de california en Berkeley en 2010, la
diferencia entre RISC-V y otros conjuntos de instrucciones son que RISC-V es gratuito,
abierto y se puede usar para cualquier propósito, lo que le permite a cualquiera que diseñe,
fabrique y venda chips y software, RISC-V esta diseñado para ser implementado por una
amplia gama de productos y dispositivos.
RISC-V intentará cubrir el hueco como empresas ARM o Intel, Huawei una de las
compañías de talla mundial no tiene acceso a esta tecnología de dichas empresas, además,
la propia Huawei es miembro de la fundación responsable de esta arquitectura. Esto es una
opción gratuita ya que no hay que pagar ningún royatil, un royatil es aquel pago que se hace
al proveedor por derechos de autor.
RISC-V desde hace tiempo esta buscando presentarse como una alternativa de código
abierto a los procesadores AMD o Intel, estos dos procesadores están basados en la
arquitectura x86/x86-64, además esta arquitectura tiene mas de 80 grandes empresas
tecnológicas dan soporte como lo son Google, Invidia, IMB y hasta el propio Huawei.
En conclusión RISC-V es una arquitectura la cual busca presentarse como otra opción a
diferencia de AMD o Intel, este procesador puede ser usado por diferentes dispositivos,
varias compañías han invertido en su desarrollo con el fin de poder usar su arquitectura en
sus dispositivos, Qualcomm es un claro ejemplo ya que ha dado su apoyo a la mejora de
esta arquitectura con el fin de poder usar Sifive, Sifive es un chip de computadora, este usa
un start up que hace parte de RISC-V, finalizando esta arquitectura busca ser la otra opción
para las compañías de talla mundial como un procesador implementado en sus dispositivos.
QUE ES UNA INSTRUCCIÓN.
Una instrucción no es más que un código que contiene implícitamente una operación que la
CPU debe realizar, por ejemplo, una instrucción como suma(add), la cual debe ser extraída
de la memoria cuando se está ejecutando un programa que la contiene, llegando a la CPU la
cual debe interpretar esta instrucción y generar una serie de señales para ser mandadas a
diferentes unidades funcionales lo que tienen que hacer, en este caso sería la ALU.
Las instrucciones suelen ser ordenadas y en secuencia, permitiendo ejecutar un programa,
las instrucciones pueden estar agrupadas en un conjunto, por ejemplo, el ISA es un
conjunto de instrucciones que contiene las operaciones aritméticas y lógicas (mov, add,
sub, jmp, not, and, xor…) las cuales son usadas por un programador permitiéndole crear un
código de ensamblador o que el compilador puede usar para traducir códigos de alto nivel
convirtiéndolos en un código de bajo nivel. Cabe aclarar que estas instrucciones se
almacenan en un formato binario, esto se hace porque la electrónica no entiende el código
de ensamblador ni siquiera unos y ceros, sino señales eléctricas con bajas o altas, que
realmente son interpretadas como unos y ceros.
QUE ES ISA.
Una ISA es una arquitectura del conjunto de instrucciones el cual es repertorio de que
puede entender y ejecutar la unidad de control de una determinada CPU, el ISA se conoce
como una microarquitectura que sirve para implementar una serie de funcionalidades como
anteriormente fueron explicadas. Existen varios tipos de ISAs, a continuación, se explican
varias de ellas.
CISC:
Son las siglas de Complex Instruction Set Computer, se compone de instrucciones
largas, un gran número de ellas pueden realizar bastantes operaciones complejas
situadas en la memoria.
RISC: Son las siglas de Reduced Instruction Set Computer, es un modelo que
resuelve algunos problemas destacados de CISC, este conjunto tiene un mejor
rendimiento a comparación de CISC debido a que sus instrucciones son más
reducidas.
ZISC:
Zero Instruction Set Computer no cuenta con un conjunto de instrucciones, se basa
en la coincidencia de patrones, similar a los computadores analógicos, este conjunto
tiene pocas implementaciones debido a que ya no existen tantos computadores
analógicos que implementen este “conjunto”.
SISC:
Specific Instruction Set Computer este conjunto es similar a RISC, este cuenta con
un conjunto más reducido de instrucciones a diferencia de RISC debido a que
optimiza su rendimiento para una aplicación especifica.
VISC:
Virtual Instruction Set Computer es un conjunto utilizado por Soft Machines
(Maquinas suaves).
DISC:
Dynamic Instruction Set Computer, este conjunto puede modificar el conjunto de
instrucciones de forma dinámica dependiendo la demanda y exigencia del
programa.
NISC:
No Instruction Set Computer, usa tecnología muy especifica y es usada en CPUs de
alta eficiencia para aplicaciones críticas.
MISC:
Minimal Instruction Set Computer, este conjunto es similar a SISC y a RISC, es un
conjunto muy reducido de instrucciones, pero la diferencia de las otras dos este
almacena las instrucciones en una pila en vez de almacenarlos como registros.
EDGE:
Explicit Data Graph Execution, este conjunto intenta mejorar el rendimiento de
CISC ya que evita los problemas de cuello de botella y contiene un conjunto de
instrucciones individuales en un grupo denominado hyperblock y puede ser
ejecutado en paralelo.
OISC:
One Instruction Set Computer, es un conjunto que usa solo una instrucción sin
limitar las aplicaciones este conjunto suele ser usado para la enseñnza.
FORMATOS DE INSTRUCCIONES RV321.
A continuación, en la siguiente ilustración se muestran los seis formatos básicos de
instrucciones que puede encontrar en RISC-V.
Tipo R: para operaciones entre registros.
Tipo I: para inmediatos cortos y loads.
Tipo S: para stores.
Tipo B: para branches.
Tipo U: para inmediatos largos.
Tipo J: para salto incondicionales.
Loads y Stores:
En RISC-V se dispone de loads y stores Word de 32 bits (lw, sw), esta extensión de datos
permite que el dato sea más corto de 32 bits y que las operaciones aritméticas operen
correctamente.
Branches condicionales:
En RISC-V se pueden comparar registros y saltar si el resultado es igual, distinto, mayor o
igual (beq, bne, bge, blt).
Salto incondicional:
La instrucción jump and link (jal) en llamadas funciones, almacena la dirección de la
siguiente instrucción en el registro destino, tambien sirve para hacer llamados de retorno de
funciones usando ra como registro de origen, y el registro cero como destino, esta
instrucción suele ser útil para operaciones de switch o case.
BANCO DE REGISTROS.
En RISC-V hay 31 registros de propósito general x1-x31, para utilizarlos con enteros, el
registro x0 contiene el valor 0, todos los registros x son de 32 bits, a continuación, se
presenta una tabla en las cuales puede observar los diferentes registros.
DIFERENCIAS ENTRE RISC-V Y RASPBERRY PI B+.
En seguida, se comentará algunas diferencias que se puede encontrar en relación con otras
arquitecturas conocidas, teniendo en cuenta las características del ISA para RV321 como se
expuso anteriormente, además encontramos que se dispone de seis formatos de
instrucciones y todas estas son de 32 bits como se mostró anteriormente.
El modelo HiFive 1 es una de las primeras placas hechas por SiFive, SiFive es la primera
empresa encarga en desarrollar hardware basado en RISC-V, fue fundada por los creadores
de RISC-V, los cuales proporcionaron unos chips basados en su arquitectura, la cual sirve
para especificar nuestro propio procesador.
HiFive 1 tiene un microcontrolador de alto rendimiento basado en RISC-V, el cual le
permite ejecutar acciones en orden y hace una ejecución de una instrucción por ciclo, el
sistema de memoria maneja DTIM con un tamaño de 16 KiB, es una indicación del tráfico
de mensajes que informa al cliente la presencia de un buffer además maneja datos del
multicanal en un punto de acceso, además HiFive 1 tiene las siguientes características:
• Operating Voltage 3.3 V and 1.8 V
• Input Voltage 5 V USB or 7-12 VDC Jack
• IO Voltages Both 3.3 V or 5 V supported
• Digital I/O Pins 19 • PWM Pins 9
• SPI Controllers/HW CS Pins 1/3
• External Interrupt Pins 19
• External Wakeup Pins 1
• Flash Memory 128 Mbit Off-Chip (ISSI SPI Flash)
• Host Interface (microUSB) Program, Debug, and Serial Communication
• Peso 22 g
A continuación, se mostrarán las características de una de las arquitecturas conocidas como
lo es la Raspberry PI B+, esta arquitectura se compara con el modelo HiFive 1 ya que este
modela implementa la arquitectura RISC-V.
SOPORTE SOFTWARE RISC-V.
Es importante disponer de paquetes para desarrolladores, así como de herramientas para
poder crear y depurar códigos, se hablará un poco de algunos paquetes para desarrolladores
disponibles actualmente para RISC-V.
PlatformIO.
Se trata de una extensión gratuita para Visual Studio Code, utiliza una base de un kit de
desarrollo de software (SDK), permite depurar y compilar código para distintas placas de
SiFive, permite también subirlo en la placa de forma rápida y sencilla, esta extensión
también es usada para programar Java que ayuda a la visualización del código permitiendo
estas funciones y muchas más.
GNU MCU Eclipse.
Este programa Eclipse es muy usado para programas como Java, C#, C++, Phyton y
muchos lenguajes más, además Eclipse cuenta con un plug-in basado en GNU para el
desarrollo de sistemas y desarrollados para diferentes plataformas como lo es RISC-V.
El soporte para esta arquitectura es muy grande ya que existen más herramientas como las
anteriores que ayudan y facilitan al programador crear códigos, depurarlos entre otras cosas
más, así mismo grandes compañías ofrecen soporte como anteriormente se dijo, entonces se
puede evidenciar que esta arquitectura tiene un buen apoyo y soporte, haciendo que esta
arquitectura vaya siendo implementada por mucha gente y compañías evidenciando que
tienen un buen soporte.
CONCLUSIONES.
BIBLIOGRAFIA.
http://architecnologia.es/risc-v-introduccion-a-la-isa
https://repositorio.unican.es/xmlui/bitstream/handle/10902/17849/TFM_RISCV_ElenaZair
a.pdf?sequence=1&isAllowed=y
https://www.zonamovilidad.es/que-es-risc-v-hardware-abierto-sin-limites