Universidad Rey Juan Carlos
ESTRUCTURA Y TECNOLOGÍA DE COMPUTADORES Estructura de un computador: conceptos básicos Luis Rincón Córcoles Licesio J. Rodríguez-Aragón
Estructura de un computador: conceptos básicos
Programa 1. 2. 3. 4. 5. 6. 7.
Introducción Elementos de almacenamiento Elementos de proceso Elementos de transferencia Ciclo de instrucción y ejecución de programas Entrada / Salida Introducción a los microprocesadores
2
Estructura de un computador: conceptos básicos
Bibliografía  D.A. PATTERSON, J.L HENNESSY. Estructura y diseño de computadores. Reverté, 2000.  P. DE MIGUEL. Fundamentos de los computadores. 7ª edición, Paraninfo, 1999.  C. CERRADA, V. FELIU. Estructura y Tecnología de Computadores I. UNED, 1993  S. DORMIDO y otros. Estructura y Tecnología de Computadores. Sanz y Torres, 2000.  W. STALLINGS. Organización y Arquitectura de Computadores. 5ª edición, Prentice-Hall, 2000.
3
Estructura de un computador: conceptos básicos
1. Introducción Unidades funcionales de un computador •Memoria •Unidad central de proceso (UCP)
Líneas de comunicaciones
Periféricos COMPUTADOR
Unidad aritmético-lógica (UAL) Unidad de control (UC) •Entrada/Salida (E/S) •Interconexiones Tipos de elementos •Elementos de almacenamiento
E/S
Memoria
Interconexiones
•Elementos de proceso •Elementos de transferencia
UCP
4
Estructura de un computador: conceptos básicos
Introducción UCP
MEM
MEM
E/S
E/S
Sistema de conexiones
Buses
Control Datos Dirección
Flanco de bajada Nivel alto
Sincronismo: reloj
Clk Nivel bajo Flanco de subida Ciclo de reloj (medido entre dos flancos de subida)
Ciclo de reloj (medido entre dos flancos de bajada)
5
Estructura de un computador: conceptos básicos
2. Elementos de almacenamiento Tipos de elementos de almacenamiento: •Biestables. •Registros. •Memoria.
Biestable: almacena un bit. •Consideraremos biestables D síncronos por flanco de bajada.
C Q
D
C
_ Q D
Q
6
Estructura de un computador: conceptos básicos
Registros en un computador Registro: colección de n biestables que funcionan al unísono. Usaremos registros con las siguientes características: •Formados por biestables D síncronos por flanco de bajada (sólo usamos la salida activa por nivel alto). •Entrada paralelo – salida paralelo. •La señal de carga es el reloj.
Registro
Entrada
n bits Control
n-1
1
0
Salida
7
Estructura de un computador: conceptos básicos
Tipos de registros en un computador Según el propósito: •Registros de propósito específico: se utilizan para una tarea determinada. Están asociados a las unidades funcionales y cumplen funciones específicas: PC, MDR, IR, ALUOut, etc. •Registros de propósito general: se utilizan para almacenar datos o direcciones de forma flexible. Agrupados en bancos de registros. Según el programador: •Registros visibles: pueden usarse directamente por el programador de bajo nivel, que conoce su existencia. Sirven como operandos implícitos o explícitos en instrucciones de máquina. •Registros transparentes: el programador desconoce su existencia, por tanto no puede usarlos. La unidad de control los utiliza para sus propios propósitos. 8
Estructura de un computador: conceptos básicos
Tipos de registros en un computador Buffer triestado: se utiliza para conectar la salida de los elementos a los caminos comunes de interconexión. Tiene una señal de control que permite que la información entrante le atraviese si está activa, pero si dicha señal se desactiva, la conexión entre la entrada y la salida desaparece (estado de alta impedancia). C_Dato_A
C_Dato
Dato
Dato_A
n
Activo
n
Inactivo
C_Dato_B
Dato_B
n
9
Estructura de un computador: conceptos básicos
Memoria •Formada por gran cantidad de elementos de almacenamiento de 1 bit. •Tipos de memorias RAM: estáticas y dinámicas. •Operaciones con memorias: Lectura Escritura Refresco (sólo en memorias dinámicas). •Definiciones: Palabra de memoria: número de bits que se tratan simultáneamente en cada acceso a memoria. Tiempo de acceso a memoria: tiempo transcurrido desde que se solicita una operación a la memoria hasta que se completa. –La lectura y la escritura pueden tener diferentes duraciones. Tiempo de ciclo (ciclo de memoria): tiempo desde que se solicita una operación hasta que se puede solicitar la siguiente. –En memorias estáticas, el tiempo de acceso y el de ciclo coinciden. 10
Estructura de un computador: conceptos básicos
3. Elementos de proceso Realizan las operaciones aritméticas, lógicas, de desplazamiento, de rotación, etc., requeridas para ejecutar las instrucciones de los programas. •Tipos de operadores: Número de operandos: –Monádico. –Diádico. Funcionamiento: –Serie. –Paralelo. Operaciones realizadas: –De própósito general. –De propósito específico.
3
ALU control
Zero ALU ALU result
11
Estructura de un computador: conceptos básicos
4. Elementos de transferencia •Enlaces Conectan elementos entre los que se pretende intercambiar información. Enlaces paralelos: constan de n canales o líneas para transmitir datos de n bits en paralelo. Enlaces serie: constan de una sola línea para transmitir datos, y los bits se envían uno tras otro. •Tipos de enlaces Dedicados: entre dos elementos. Buses: compartidos por múltiples elementos. Enlaces dedicados
12
Estructura de un computador: conceptos básicos
Buses BUS
Bus de datos: transferencia de datos entre elementos. ∗ Ancho del bus de datos: ancho del computador (suele coincidir también con el ancho de la palabra de memoria). • Bus de direcciones: transferencia de direcciones. ∗ Ancho del bus de direcciones: fija el tamaño máximo de la memoria. • Bus de control: transferencia de señales de control (carga, selección, lectura o escritura de memoria, etc.) Bus del sistema: constituido por los tres buses anteriores (datos, direcciones y control). 13
Estructura de un computador: conceptos básicos
Ejemplo de conexión en bus
Módulo con conexión bidireccional
Módulo con entrada desde el bus
Módulo con salida hacia el bus
Bus Cuando varios elementos pueden poner información en un mismo enlace (bus), es preciso interponer buffers triestado con señales de control excluyentes para evitar que dos elementos intenten enviar información a la vez.
14
Estructura de un computador: conceptos básicos
5. Ciclo de instrucción y ejecución de programas •Microoperaciones: operaciones elementales que pueden realizarse con los elementos de la ruta de datos. •Tipos de microoperaciones: Transferencia. –Registro-registro. –Registro-memoria. Proceso: a través de la UAL. –Lógicas. –Aritméticas. •Un programa se compone de una secuencia de instrucciones. •En el modelo Von Neumann, un programa se encuentra listo para ser ejecutado cuando sus instrucciones se encuentran almacenadas consecutivamente en memoria principal. •Los datos del programa se encontrarán también almacenados en la memoria principal. –Registros: contienen datos temporales intermedios. 15
Estructura de un computador: conceptos básicos
Instrucciones de máquina •Una instrucción de máquina consta de varios bits agrupados en campos: Un código de operación (también llamado código de instrucción). Uno o varios operandos (o incluso ninguno). •El código de operación indica qué tiene que hacer la instrucción (sumar, restar, mover datos, etc). •Los campos de operandos indican cuáles son los datos sobre los que hay que realizar la operación. Origen o fuente: los que participan en el cálculo. Destino: donde se almacena el resultado. Los campos de operandos no suelen contener los datos en sí, sino que indican cómo encontrar los datos (modos de direccionamiento). –Registro no transparente. –Memoria. –Instrucción (operando inmediato). •Una instrucción de máquina ocupará un número de bits equivalente a una palabra de memoria o un múltiplo de una palabra. A veces los campos de operando no caben dentro de una sola palabra junto con el código de operación (palabras de extensión o ampliación).
16
Estructura de un computador: conceptos básicos
Unidad de control (UC) •La UC es la unidad funcional que organiza y coordina a los restantes elementos del computador. –Para ello utiliza las señales de control.
Señales de control internas para la CPU
Bus de control
•Funciones de la UC: –Lectura de las instrucciones (fetching). –Decodificación de las instrucciones. –Ejecución de las instrucciones. –Resolución de situaciones particulares (interrupciones, trampas).
IR
Indicadores de estado Señales de control hacia el bus Señales de control desde el bus
Unidad de control Reloj (Clk)
•Para ejecutar un programa, la UC va leyendo y ejecutando las instrucciones una por una. –La ejecución de un programa se compone de una secuencia de ciclos de instrucción.
17
Estructura de un computador: conceptos básicos
Unidad aritmético-lógica (UAL) •La UAL es el elemento de proceso que realiza la operación requerida en la instrucción. •La UAL se compone del operador y de sus registros y caminos de transferencia y elementos asociados (banco de registros, acumulador, etc.) •Unidad central de proceso: UCP = UC + UAL Registros
Unidad de control
Registros
ALU
Indicadores
Registros
18
Estructura de un computador: conceptos básicos
Ciclo de instrucción •Para llevar a cabo un ciclo de instrucción, la UC cuenta con la siguiente información: Instrucción en ejecución (inicialmente en memoria y apuntada por el PC). Registro de estado. Contador de fases y señal de reloj. Señales de control externas (emitidas por otras unidades funcionales). •Fases en un ciclo de instrucción: 1) Lectura y decodificación de la instrucción en memoria. 2) Ejecución de la instrucción. 3) Ciclo de interrupción.
19
Estructura de un computador: conceptos básicos
Ejecución de programas: resumen •
Un programa consta de un conjunto de instrucciones y datos almacenados en memoria principal.
•
La ejecución de un programa implica la ejecución de sus instrucciones en secuencia.
•
La ejecución de una instrucción se denomina ciclo de instrucción.
•
Un ciclo de instrucción consta de varias fases (lectura, decodificación, ejecución).
•
Cada fase del ciclo de instrucción consta de una o varias microoperaciones.
•
Las microoperaciones se pueden solapar en el tiempo si no se estorban unas a otras. 20
Estructura de un computador: conceptos básicos
6. Entrada / Salida El computador se comunica con el exterior mediante dispositivos de E/S.
ARQUITECTURA VON NEUMANN PERIFÉRICOS
REGISTROS
MEMORIA PRINCIPAL CIRCUITOS
U N I D A D
PERIFÉRICOS
PERIFÉRICOS
D E
U.A.L.
E / S PERIFÉRICOS
UNIDAD DE CONTROL
PUNTERO
21
Estructura de un computador: conceptos básicos
Esquemas de entrada / salida •
Bus dedicado (E/S aislada). Buses diferentes para acceder a memoria y a E/S. Espacios de direcciones diferentes para memoria y E/S.
•
Bus único (E/S localizada en memoria). Espacio de direcciones único para memoria y E/S.
22
Estructura de un computador: conceptos básicos
Ejemplo: conexión mediante bus único
23
Estructura de un computador: conceptos básicos
Gestión de entrada / salida •
Alternativas para gestionar la entrada/salida: – Espera activa (E/S controlada por programa). – Interrupciones. – DMA (robo de ciclo).
•
Todos los computadores modernos cuentan con las tres alternativas.
24
Estructura de un computador: conceptos básicos
Ciclo de instrucción •
La última fase del ciclo de instrucción consiste en que la UC comprueba si hay alguna petición de interrupción pendiente sin atender.
•
Si es así, se produce un salto a la rutina de servicio de interrupción.
•
Trampas: excepciones generadas explícitamente por los programas (instrucción TRAP #n). Suelen utilizarse para realizar llamadas explícitas desde los programas a los servicios del sistema operativo.
25
Estructura de un computador: conceptos básicos
7. Introducción a los microprocesadores •
•
•
•
Microprocesador: UCP en una sola pastilla incluyendo: Unidad de control. Unidad aritmético-lógica y banco de registros. Buses internos de datos, direcciones y control. Limitaciones en la tecnología de microprocesadores: Tecnología de integración (número de transistores). Tecnología de encapsulamiento (número de patillas). Actualmente los microprocesadores incluyen: Unidades de proceso para datos en coma flotante. Múltiples unidades de ejecución de instrucciones. Memoria caché. Unidades de lectura anticipada de instrucciones. Tablas de anticipación de saltos. Los computadores actuales se basan en microprocesadores. 26
Estructura de un computador: conceptos básicos
Características de los microprocesadores • • • • • • • •
Repertorio de instrucciones ejecutado. Frecuencia del reloj. Anchura de los buses internos. Tamaño de los registros. Tamaño de la memoria caché si la incluye. Tecnología de fabricación. Número de transistores. Número de patillas del encapsulamiento.
•
Ancho de un microprocesador: ancho de su operador, que normalmente coincide con el ancho del bus de datos. 27
Estructura de un computador: conceptos básicos
Microprocesadores más conocidos •
Fabricantes más conocidos: Intel, AMD, Motorola, MIPS, IBM, DEC, Zilog, Hewlett-Packard, Fujitsu, Texas Instruments, etc.
•
Microprocesadores de 4 bits: 4004.
•
Microprocesadores de 8 bits: 8008, 8080, 6800, Z-80, 8085.
•
Microprocesadores de 16 bits: 8086, 68000, 80286.
•
Microprocesadores de 32 bits: 68020, 68030, 68040, 80386, 80486, Pentium, PowerPC, K6, K7, R2000, R3000.
•
Microprocesadores de 64 bits: Alpha, SPARC, UltraSPARC, R4000, R5000, R10000, R12000, Itanium. 28
Estructura de un computador: conceptos básicos
Microcontroladores y procesadores de propósito específico •
Microcontroladores:
•
Procesadores digitales de señal (DSP):
•
Son computadores en una sola pastilla, incluyendo memoria e interfaz para entrada / salida. La memoria incluye parte EPROM y parte RAM, así como varios registros. Ejemplos: 8051, PIC 16X84. Adaptados para realizar tratamiento de señales digitales (audio, vídeo, etc). Diseñados para ejecutar rápidamente bucles muy repetitivos con operaciones de suma y producto con accesos a estructuras de datos de tipo vector. Suelen incorporar memorias caché y tratamiento separado de instrucciones y datos (arquitectura Harvard). Ejemplo: familia TMS320 de Texas Instruments.
Otros procesadores de propósito específico:
Procesadores de entrada/salida. Aceleradores de gráficos. Controladores de red local.
29