Arquitectura de Computadores - Departamento de Informática

Anuncio
Universidad Politécnica de Madrid
Departamento de
Informática
Aplicada
Notas y
Transparencias de
Arquitectura
de Computadores
CPU
Memorias
Controladores
de E/S
Paco Aylagas
Reservados todos los derechos.
Prohibida la reproducción parcial o
Total sin autorización.
I.S.B.N.: 84-96244-99-7
Depósito Legal: M-33299-2006
Edita y distribuye:
Departamento de Publicaciones de la
Escuela Universitaria de Informática
de la Universidad Politécnica de Madrid
BAJO EL PATROCINIO DE LA FUNDACIÓN GENERAL DE LA
UNIVERSIDAD POLITÉCNICA DE MADRID
Arquitectura de Computadores
Notas y Transparencias - ii
PRÓLOGO
Estas Notas y Transparencias no pretenden en modo alguno servir de alternativa a
cualquiera de los libros de texto indicados en la bibliografía de la asignatura. Sólo son las
transparencias de clase con sus notas y comentarios de un curso de 30 horas de
introducción a la Arquitectura de Computadores, y simplemente intentan servir de apoyo a
las explicaciones dadas en clase.
Para cualquier duda o ampliación sobre los temas aquí tratados, se recomienda utilizar las
fuentes bibliográficas que se citan. En las páginas que siguen se encuentra, muy detallado,
el programa de la asignatura, indicando en cada capítulo y apartado la fuente bibliográfica
que se ha utilizado para la confección de estas Notas y Transparencias.
Agradecimientos
Estas Notas y Transparencias de Arquitectura de Computadores se han realizado gracias a
los textos citados en la Bibliografía, por ello, quiero dejar sentado que el principal mérito de
estos apuntes se debe a los autores de las correspondientes fuentes bibliográficas, los
cuales me han servido de guía y fuente en la realización de estas notas. Espero, no
obstante, que alguna explicación o ejemplo de mi propia cosecha también ayude a
comprender los conceptos básicos de la Arquitectura de Computadores.
Quiero dar las gracias a Javier García por la ayuda de sus propios apuntes; a Pilar
Manzano y Andrés Sevilla por la revisión general, y a Soledad Delgado por su estupenda
revisión y corrección del tema de memoria caché; a Pablo Carazo y a José Luis Esteban,
que hicieron las transparencias originales del Motorola 68000; y también a los demás
compañeros y alumnos que con sus comentarios, correcciones de erratas y sugerencias de
todo tipo han ayudado en gran manera a que estas Notas y Transparencias vean la luz.
Junio de 2008
Arquitectura de Computadores
Notas y Transparencias - iii
Arquitectura de Computadores
Notas y Transparencias - iv
Contenido y Referencias Bibliográficas
1. Introducción
1.1. ¿Qué es la Arquitectura de Computadores?
1.2. Perspectiva Histórica
1.3. Estructura Básica de un Ordenador
1.4. Clasificación de las arquitecturas
2. La CPU
2.1. Estructura de la CPU
2.2. Ciclo de Instrucción
2.3. Interfaz hardware de una CPU
2.4. Ciclo de Reloj, Memoria e Instrucción
3. Lenguaje Máquina
3.1. Visión del Programador
3.2. Formato de las Instrucciones
3.3. Modos de Direccionamiento
3.4. Instrucciones Típicas
3.5. Un Ejemplo: Motorola 68000
4. La Memoria
4.1. Jerarquía de Memoria
4.2. La Memoria Principal
4.3. Interconexión CPU - Memoria
5. Sistemas de Entrada/Salida
5.1. Estructura de un Sistema de E/S
5.2. Los Métodos de E/S
5.3. E/S por Sondeo (polling)
5.4. E/S por Interrupciones
5.5. E/S por Acceso Directo a Memoria (DMA)
6. Segmentación (Pipelining)
6.1. Conceptos básicos
6.2. Causas de ralentización
7. Memoria Caché
7.1. Fundamento e introducción
7.2. Estructura de una memoria caché
7.3. Políticas de ubicación
7.4. Políticas de sustitución
7.5. Políticas de escritura
7.6. Otras consideraciones
7.7. Casos: Pentium, PowerPC y Motorola
8. Arquitecturas RISC
8.1. Evolución de las Arquitecturas CISC
8.2. Análisis de los Programas
8.3. Principios y Características de las Arquitecturas RISC
8.4. Diseño de los Procesadores Actuales
8.5. Algunos Procesadores RISC
Arquitectura de Computadores
Notas y Transparencias - v
1. Introducción
1.1. ¿Qué es la Arquitectura de
Computadores?
Van de Goor 1.1.1; Stallings 1.1
1.2. Perspectiva Histórica
Hayes 1.2 y 1.3; Tanenbaum 1.2; Stallings 2;
1.2.1. Los Microprocesadores
Tanenbaum (3rd. ed.) 1.5.6 y 1.5.7;
Stallings pag. 38, 2.3 (Pentium y PowerPC)
1.3. Estructura Básica de un Ordenador
1.3.1. Máquina de von Neumann
Hayes pag. 20; Stallings 2.1; Tanenbaum 1.2.2
1.3.2. Esquema general de un ordenador Hamacher 1.1; Stallings 3.1; Tanenbaum 2
1.4. Clasificación de las arquitecturas
Hwang 1.1.3 (Flynn’s classification)
2. La CPU
2.1. Estructura de la CPU
Stallings 3.2, 11.1, 11.2; Tanenbaum 2.1.1;
Hamacher 3.1
2.2. Ciclo de Instrucción
Tanenbaum 2.1.2; Stallings 10.1; 12.3; van de Goor
7.1; Hamacher 3.2
2.3. Interfaz hardware de una CPU
Tanenbaum 3.4.1
2.4. Ciclo de Reloj, Memoria e
Instrucción
3. Lenguaje Máquina
3.1. Visión del Programador
3.2. Formato de las Instrucciones
Stallings 11.3; Instruction set design (p. 330);
Tanenbaum 5.3
3.2.1. Consideraciones de diseño
Tanenbaum 5.3.1; Stallings 10.3
3.2.2. Códigos de operación con
extensión
Tanenbaum 5.3.2
3.3. Modos de Direccionamiento
3.3.1. La Pila
3.4. Instrucciones Típicas
3.4.1. Llamadas a procedimientos
Stallings 11.1; Tanenbaum 5.4; van de Goor 5.2
Tanenbaum 5.4.8; Stallings apéndice 10-A
Stallings 10.4; Tanenbaum 5.5, 5.6;
Desplazamientos y rotaciones: van de Goor 6.3
Tanenbaum 5.6.2; Stallings p. 373
3.5. Un Ejemplo: Motorola 68000
3.5.1. Organización de la memoria
Arquitectura de Computadores
Clements 2.2 (Address Registers)
Notas y Transparencias - vi
3.5.2. Registros internos
Clements 2.2; Acarreo y Overflow: Hamacher 6.2 y
6.4
3.5.3. Modos de direccionamiento
Clements 2.3
3.5.4. Repertorio de instrucciones
Clements 2.4 - 2.7
3.5.5. Excepciones e interrupciones
Clements 6. Una introducción en van de Goor A.4
4. La Memoria
4.1. Jerarquía de Memoria
Hamacher 5.1; Stallings 4.1 (The Memory Hierarchy)
4.2. La Memoria Principal
4.2.1. Tipos de memorias
Stallings 5.1; Tanenbaum p. 110-111
4.2.2. La memoria principal
Stallings 1.1
4.2.3. Organización y orden
Tanenbaum 2.2.2, 2.2.3; Stallings 10-B
4.2.4. Interfaz de una pastilla de
memoria
Stallings 4.1 (Encapsulado de los Chips)
4.2.5. Cronogramas de lectura y
escritura
Tanenbaum 3.4.4
4.3. Interconexión CPU - Memoria
4.3.1. El mapa de memoria
4.3.2. Organización de módulos de
memoria
Stallings 5.1 (Lógica del Chip y Organización en
Módulos; Tanenbaum 3.3.4
4.3.2.1. Agrupación por longitud de palabra
4.3.2.2. Agrupación por direcciones
4.3.3. Decodificación de direcciones
Tanenbaum 3.7.2; Clements 5.1
4.3.4. Sistema basado en el MC68000
4.3.4.1. Ciclos de lectura y escritura
Clements 4.2; García Guerra 6.4
4.3.4.2. Conexión de memoria y
decodificación
Clements Fig. 5.6
5. Sistemas de
Entrada/Salida
5.1. Estructura de un Sistema de E/S
van de Goor 11.1; Tanenbaum 2.4.1;
García Guerra 3.2
5.1.1. Controlador de dispositivo
Stallings 7.2
5.1.2. Software de Entrada/Salida
van de Goor 11.3
5.1.3. Acceso a los dispositivos de E/S
García Guerra 3.5; Hamacher 4.1
Arquitectura de Computadores
Notas y Transparencias - vii
5.1.3.1. Espacio de direccionamiento de E/S
5.1.3.2. Espacio de E/S “mapeado” en
memoria
5.2. Los Métodos de E/S
García Guerra 3.6; Tanenbaum 5.5.7
5.3. E/S por Sondeo (polling)
van de Goor 11.4.1; García Guerra 3.7
5.4. E/S por Interrupciones
Stallings 7.4; Hamacher 4.2
5.4.1. ¿Qué es una interrupción?
Hamacher 4.2; Tanenbaum 5.6.5;
García Guerra 3.8-3.9
5.4.2. Tipos de interrupciones
García Guerra 3.12; Tanenbaum 5.6.4, 5.6.5;
5.4.3. Niveles y máscaras de
interrupción
García Guerra 3.10, 3.11, 3.15-3.17;
Hamacher 4.2.2-4.2.3
5.4.4. Reconocimiento y tratamiento de
una int.
Stallings 7.4 (Procesamiento de la Interrupción);
García Guerra 3.14; Hamacher 4.2.1
5.4.5. Esquema de E/S por
interrupciones
Hamacher 4.3.3
5.5. E/S por Acceso Directo a Memoria
(DMA)
5.5.1. Políticas de reparto del bus
6. Segmentación
(Pipelining)
Stallings 7.5; Wakerly 11.5.1; Hamacher 4.4;
García Guerra 3.18; Tanenbaum 5.5.7
Hayes 7.2.2
Hamacher 7; van de Goor 14.8; Stallings 12.4;
Patterson 6
6.1. Conceptos básicos
Stallings 12.4 (Estrategia de segmentación); van de
Goor 14.8; Hamacher 7.1
6.2. Causas de ralentización
van de Goor 14.8 (último párrafo); Stallings 12.4
6.2.1. Motivos estructurales
Stallings 12.4
6.2.2. Dependencias de datos
van de Goor 14.8.1; Hamacher 7.1.2 y 7.4;
6.2.3. Bifurcaciones
van de Gor 14.8.3; Hamacher 7.3; Stallings 12.4
(Tratamiento de Saltos)
7. Memoria Caché
7.1. Fundamento e introducción
Hamacher 5.5
7.2. Estructura de una memoria caché
van der Goor 14.6.1; Stallings 4.2
7.3. Políticas de ubicación
Stallings 4.3 (Función de Correspondencia);
Hamacher 5.5.1, 5.5.3
7.3.1. Correspondencia directa
7.3.2. Correspondencia asociativa
Arquitectura de Computadores
Notas y Transparencias - viii
7.3.3. Correspondencia asociativa de
conjuntos
7.4. Políticas de sustitución
van de Goor pag. 419; Hamacher 5.5.2;
Hennessy 5.2 Q3
7.4.1. Basadas en la estadística
7.4.2. No basadas en la estadística
7.5. Políticas de escritura
Hennessy 5.2 Q4; Stallings 4.3 (Política de
Escritura);
7.5.1. Políticas de actualización
7.5.2. Falta de caché en escritura
7.6. Otras consideraciones
7.6.1. Tamaño de la caché
Stallings 4.3 (Tamaño de Caché);
7.6.2. Tamaño de bloque
Stallings 4.3 (Tamaño de Línea); van der Goor 14.6.2
(Line & caché size); Hennessy pag. 393
7.6.3. Número de cachés
Stallings 4.3 (Número de caches); Hamacher 5.6.3;
Hennessy pag. 382
7.7. Casos: Pentium, PowerPC y
Motorola
Pentium y PowerPC: Stallings 4.4;
Motorola: Hamacher 5.5.4
8. Arquitecturas RISC
8.1. Evolución de las Arquitecturas
CISC
van de Goor 15 y 15.1
8.2. Análisis de los Programas
van de Goor 15.2; Milutinovic 2.3.1; Stallings 13.1
8.3. Principios y Características de las
Arquitecturas RISC
van de Goor 15.3; Stallings 13.4; Milutinovic 2.3.1
8.4. Diseño de los Procesadores
Actuales
Tanenbaum 2.1.4
8.5. Algunos Procesadores RISC
Hamacher 8 tiene una buen estudio comparativo.
8.5.1. MIPS
Kane 2; Stallings 13.6; Milutinovic 2.4.4;
Tanenbaum-3 8.1.6
8.5.2. PowerPC
Stallings 11.6 (5ª ed.); Hamacher 8.3
8.5.3. Alpha AXP
Hamacher 8.4
Arquitectura de Computadores
Notas y Transparencias - ix
Bibliografía
La confección de estos apuntes está basada principalmente en libros de introducción a la
Arquitectura de Computadores, no obstante, en algunos casos se ha recurrido a algunos
textos más avanzados o especializados que han aportado algún dato o matiz de interés.
También se incluyen aquí algunos textos avanzados que aún no habiendo sido utilizados
para la realización de estos apuntes, los considero de interés para cualquier profundización
que se quiera hacer en esta materia.
Textos de Introducción a la Arquitectura de Computadores.
Organización y Arquitectura de Computadoras (7ª ed.)
William Stallings
Pearson Educación, 2006
Computer Architecture and Design
A.J. van de Goor
Addison-Wesley, 1989
Structured Computer Organization (4th ed.)
Andrew S. Tanenbaum
Prentice-Hall, 1999
Computer Organization and Architecture (3rd. ed.)
John P. Hayes
McGraw-Hill, 1998
Computer Organization (4th ed.)
V. Carl Hamacher, Z. G. Vranesic, S. G. Zaky
McGraw-Hill, 1996
Computer Architecture. Concepts and Systems
Veljko M. Milutinovic
North-Holland, 1988
Sistemas Digitales. Ingeniería de los procesadores 68000
Antonio García Guerra
Centro de Estudios Ramón Areces, 1993
The Principles of Computer Hardware (3rd. Ed.)
Alan Clements
Oxford University Press, 2000
Textos Avanzados o Especializados de Arquitectura de Computadores.
Computer Organization and Design. The hardware and software interface.
David A. Patterson & John L. Hennessy
Morgan Kaufmann , 1994
Computer Architecture. A Quantitative Approach. (2nd. ed.)
John L. Hennessy & David A. Patterson
Morgan Kaufmann, 1996
Arquitectura de Computadores
Notas y Transparencias - x
Advanced Computer Architecture
Kai Hwang
McGraw-Hill,1993
Microprocessor Systems Design. 68000 Hw, Sw. and Interfacing (2nd. ed.)
Alan Clements
PWS-Kent Publising Company, 1992
Microcomputer Architectura and Programming. The 68000 family
John F. Wakerly
John Wiley & sons, 1989
The Architetcure of Pipelined Computers
Peter M. Kogge
Hemisphere Publishing, 1981
The Cache Memory Book
Jim Handy
Academic Press, 1998
Arquitectura de Computadores
Notas y Transparencias - xi
Descargar