Estructura de Computadores
Procesadores Mips y Su Ensamblador
Jose Antonio Alvarez Bermejo
El objetivo fundamental de este texto es el de proporcionar al lector una base sólida para abordar el estudio de temas relacionados con la arquitectura de computadores y el desarrollo software. Durante todo el libro se pretende revelar la relación existente entre ambas disciplinas (desarrollo software y arquitectura de computadores). Se muestra cómo un lenguaje de alto nivel te...
El objetivo fundamental de este texto es el de proporcionar al lector una base sólida para abordar el estudio de temas relacionados con la arquitectura de computadores y el desarrollo software. Durante todo el libro se pretende revelar la relación existente entre ambas disciplinas (desarrollo software y arquitectura de computadores). Se muestra cómo un lenguaje de alto nivel terminará traduciéndose al lenguaje máquina, característico del procesador sobre el que se trabaja. Y también veremos cómo se puede programar con un lenguaje de más bajo nivel como es el lenguaje ensamblador, que tras un proceso de traducción y otro de enlazado se traducirá a cadenas de bits (instrucciones y datos) -lenguaje máquina- que constituyen el ejecutable. Conocer las técnicas de desarrollo propias del ensamblador puede ayudar mucho en el desarrollo de programas de alto nivel. La arquitectura, del procesador que se ha usado en el libro, goza de un diseño claro y eficaz, características que hacen que este procesador sea fácil y provechoso para el estudio. No es objetivo de este texto convertir al lector en un programador experimentado de lenguaje MIPS sino el de proporcionarle una visión global sobre el funcionamiento de todos los sistemas de computadores. El estudio de las arquitecturas del procesador ha estado desterrado o postergado a un segundo plano, pues estas no han evolucionado agresivamente desde hace más de veinte años. Sin embargo, durante los últimos cuatro años estamos experimentando, con la aparición de las nuevas arquitecturas Multicore, la necesidad de formar profesionales versados en arquitecturas del computador, pues sus desarrollos aprovechan al máximo el potencial ofrecido por el procesador.
Reseña del Editor
ÍNDICE
AGRADECIMIENTOS......................................................................................................15
INTRODUCCIÓN ..............................................................................................................17
ICONOGRAFÍA .................................................................................................................19
MÓDULO 1. INTRODUCCIÓN.......................................................................................21
CAPÍTULO 1. ASENTANDO CONCEPTOS: PROGRAMA. SISTEMA
OPERATIVO. PROCESO. EL PROCESADOR. RENDIMIENTO.............................23
1.1 ¿QUÉ UTILIDAD TIENE UN PROGRAMA O FICHERO EJECUTABLE?.................................28
1.1.1 La función del sistema operativo ........................................................................28
1.1.2 La casa de Gran Hermano (el procesador y su entorno) ....................................34
1.2 ¿QUÉ ES EL RENDIMIENTO? ¿CÓMO SE MIDE? .............................................................42
1.2.1 El tiempo de ejecución, los M.I.P.S. y los ciclos de reloj. El concepto de
rendimiento...................................................................................................................43
1.2.2 Qué es un ciclo. El reloj ......................................................................................44
1.3 RETOS..........................................................................................................................46
1.3.1 Desprotección de ejecutables ..............................................................................46
1.3.2 El uso de binders o mezcladores .........................................................................48
CAPÍTULO 2. ARQUITECTURA DE COMPUTADORES Y EL LENGUAJE
ENSAMBLADOR...............................................................................................................49
2.1 INTRODUCCIÓN............................................................................................................49
2.2 DIFERENTES ARQUITECTURAS, DIFERENTES PROCESADORES ......................................52
2.3 FUNDAMENTOS............................................................................................................53
2.4 EL CICLO DE MÁQUINA BÁSICO....................................................................................53
8 ESTRUCTURA DE COMPUTADORES © RA-MA
2.5 INSTRUCCIONES MÁQUINA...........................................................................................55
2.6 SENTENCIA DE LENGUAJE ENSAMBLADOR...................................................................55
2.7 TRADUCCIÓN DE PROGRAMAS .....................................................................................57
2.8 LENGUAJE MÁQUINA...................................................................................................58
2.9 ALMACENAMIENTO PRIMARIO ....................................................................................59
2.10 ARQUITECTURA FRENTE A IMPLEMENTACIÓN ...........................................................59
2.10.1 Emulación..........................................................................................................60
2.10.2 Traducción separada o por fases .......................................................................61
2.10.3 Cargadores.........................................................................................................62
CAPÍTULO 3. LA IMPORTANCIA DEL BIT. COMPUTADORAS DIGITALES ...63
3.1 LAS COMPUTADORAS Y EL SISTEMA BINARIO ..............................................................64
3.2 PATRONES DE BITS.......................................................................................................71
CAPÍTULO 4. LA COMPUTADORA..............................................................................73
4.1 COMPONENTES DE UNA COMPUTADORA......................................................................74
4.2 ¿QUÉ ES UN CONTROLADOR DE E/S? ...........................................................................75
4.3 MEMORIA PRINCIPAL ...................................................................................................75
4.3.1 Memoria virtual...................................................................................................77
4.3.2 Memoria caché ....................................................................................................78
4.3.3 Contenidos de memoria. La información son bits en un contexto......................79
MÓDULO 2. REPRESENTACIÓN INTERNA DE LOS DATOS EN MIPS ..............81
CAPÍTULO 5. REPRESENTACIÓN DE CARACTERES CON PATRONES
DE BITS..............................................................................................................................83
5.1 REPRESENTACIÓN DE CARACTERES .............