Libro
Arquitectura de Computadoras con RISC-V
Registro en:
978-958-722-795-6
Universidad Tecnológica de Pereira
Autor
Jaramillo Villegas, José Alfredo
Zuluaga Bucheli, Hernán Mauricio
Sepúlveda Caviedes, Camilo
Institución
Resumen
La formación en ingeniería de computadoras cumple una función fundamental en la educación en la ciencia de la computación. Esta capacitación proporciona a los estudiantes los conocimientos que necesitan para diseñar, configurar y maximizar las capacidades de los sistemas computacionales. Históricamente, esta área ha sido enseñada con arquitecturas de conjuntos de instrucciones de tipo reducido (RISC) dada la dificultad que conlleva el entendimiento de las arquitecturas de tipo complejo (CISC), tal como su nombre lo indica.
En las últimas tres décadas, esta área ha pasado por varias arquitecturas RISC, tales como DLX, MIPS, SPARC y ARM. Sin embargo, ninguna ha permitido una integración vertical totalmente abierta, de libre uso y sin restricciones por licenciamiento. Esta arquitectura RISC-V pretende brindar un estándar moderno que fácilmente pueda cumplir las necesidades pedagógicas en el aula de clase. De igual forma, RISC-V logra brindar la robustez necesaria para cumplir con los requerimientos para su implementación en procesadores para teléfonos inteligentes, tabletas y sistemas embebidos, en donde actualmente domina la arquitectura ARM; y en computadoras portátiles y de escritorio, servidores y supercomputadoras, en donde domina la arquitectura X86-64. Podría proyectarse que en los próximos años el impacto de RISC-V en la arquitectura de computadoras será equivalente al rol que ha jugado Linux en los sistemas operativos. Computer engineering training plays a key role in computer science education. This training provides students with the knowledge they need to design, configure and maximize the capabilities of computer systems. Historically, this area has been taught with reduced-type instruction set (RISC) architectures given the difficulty involved in understanding complex-type architectures (CISC), as its name suggests.
In the last three decades, this area has gone through several RISC architectures, such as DLX, MIPS, SPARC and ARM. However, none has allowed a fully open vertical integration, free of use and without licensing restrictions. This RISC-V architecture aims to provide a modern standard that can easily meet the pedagogical needs in the classroom. Likewise, RISC-V manages to provide the necessary robustness to meet the requirements for its implementation in processors for smartphones, tablets and embedded systems, where it currently dominates the ARM architecture; and on laptops and desktops, servers and supercomputers, where it dominates the X86-64 architecture. It could be projected that in the coming years the impact of RISC-V on computer architecture will be equivalent to the role that Linux has played in operating systems Contenido
CAPÍTULO UNO
Introducción a RISK-V........................................................................................................15
1.1. Historia de la computadora .....................................................................................20
1.1.1. El quipu ..........................................................................................................21
1.1.2. La yupana .......................................................................................................21
1.1.3. El ábaco chino ................................................................................................22
1.1.4. La pascalina....................................................................................................23
1.1.5. Rueda de Leibniz............................................................................................24
1.1.6. Máquina analítica ...........................................................................................27
1.1.7. Colossus .........................................................................................................27
1.1.8. Z3 ...................................................................................................................31
1.1.9. ABC................................................................................................................31
1.1.10. ENIAC..........................................................................................................33
1.2. Criterios de diseño de computadoras......................................................................38
1.2.1. Diseñar teniendo en cuenta la ley de Moore ..................................................38
1.2.2. Usar la abstracción para simplificar el diseño................................................38
1.2.3. Reducir el tiempo de ejecución para los casos más comunes........................39
1.2.4. Mejorar rendimiento a través del paralelismo................................................40
1.2.5. Mejorar rendimiento a través de la segmentación..........................................40
1.2.6. Mejorar rendimiento a través de la predicción de saltos................................41
1.2.7. Jerarquía de memorias....................................................................................42
1.2.8. Mejorar fiabilidad a través de redundancia ....................................................43
1.3. Evaluación de rendimiento de la computadora .......................................................44
1.4. Ejercicios Capítulo 1...............................................................................................46
CAPÍTULO DOS
Instrucciones........................................................................................................................51
2.1. Instrucciones aritmético lógicas..............................................................................54
2.1.1. Instrucciones tipo R........................................................................................54
2.1.2. Instrucciones tipo I.........................................................................................58
2.2. Instrucciones de memoria de datos.........................................................................61
2.2.1. Instrucciones de lectura de memoria tipo I ....................................................61
2.2.2. Instrucciones de escritura en memoria tipo S.................................................63
2.3. Instrucciones de saltos condicionados ....................................................................65
2.4. Instrucciones de saltos incondicionados.................................................................72
2.4.1. jal tipo J..........................................................................................................72
2.4.2. jalr tipo I.........................................................................................................73
2.4.3. Funciones .......................................................................................................73
2.5. Instrucciones auxiliares...........................................................................................80
2.6. Pseudo instrucciones...............................................................................................81
2.7. Ejercicios Capítulo 2...............................................................................................83
CAPÍTULO TRES
Procesador............................................................................................................................87
3.1. Procesador Monociclo.............................................................................................87
3.1.1. Memoria de instrucciones ..............................................................................89
3.1.2. Unidad de control...........................................................................................89
3.1.3. Unidad de registros.........................................................................................92
3.1.4. Unidad de inmediatos.....................................................................................93
3.1.5. Unidad aritmética lógica ................................................................................94
3.1.6. Unidad de saltos.............................................................................................96
3.1.7. Memoria de datos...........................................................................................96
3.1.8. Flujo de datos.................................................................................................98
3.2. Procesador segmentado.........................................................................................103
3.2.1. Procesador segmentado con solución a los problemas
de segmentación por software ................................................................................105
3.2.2. Segmentos del procesador............................................................................108
3.2.3. Procesador segmentado con solución a los problemas
de segmentación por hardware...............................................................................114
3.3. Ejercicios Capítulo 3.............................................................................................123
CAPÍTULO CUATRO
Sistemas de Entrada y Salida .............................................................................................129
4.1. Espacio de direccionamiento...........................................................................129
4.1.1. Controlador de video....................................................................................131
4.1.2. Controlador de teclado .................................................................................133
4.2. Ejercicios Capítulo 4.............................................................................................134
Apéndice A
Estándar internacional para unidades.................................................................................135
A.1. Estándar ISO/IEC 80000............................................................................................136
A.1.1. Estándar para ciencia de la información y tecnología ISO/IEC 80000-13 .............137
Apéndice B........................................................................................................................139
Glosario.............................................................................................................................139
Bibliografía .......................................................................................................................147