Estructura de Computadores Tema 4. El procesador Departamento de Informática Grupo de Arquitectura de Computadores, Comunicaciones y Sistemas UNIVERSIDAD CARLOS III DE MADRID
Contenido Elementos de un computador Organización del procesador Registros ALU Unidad de control Interconexión de los elementos La unidad de control Ejecución de instrucciones Modos de ejecución Arranque de un computador Interrupciones Diseño de la unidad de control Prestaciones y paralelismo ARCOS Estructura de Computadores 2
Componentes de un computador 3 Procesador Memoria Principal Bus Módulo E/S Módulo E/S Módulo E/S Periférico Periférico Periférico ARCOS Estructura de Computadores 3
Interconexión 4 Procesador Memoria Principal Bus de datos Bus de direcc. Bus de control Módulo E/S Módulo E/S Módulo E/S Periférico Periférico Periférico ARCOS Estructura de Computadores 4
La placa base ARCOS Estructura de Computadores 5
Componentes del procesador 6 Banco de registros Unidad aritmético-lógica Unidad de control Memoria caché ARCOS Estructura de Computadores 6
Registros n Elemento que almacena un conjunto de bits Registro carga n Puede existir otra señal para poner el registro a cero ARCOS Estructura de Computadores 7
Registros 8 n Registro carga Puede existir otra señal para poner el registro a cero n Entrada Carga Contenido Salida ARCOS Estructura de Computadores 8
Tipos de registros Visibles al programador Registros no visibles Registros temporales Registros de control y estado Contador de programa, PC Registro de instrucción, RI Registro de direcciones de memoria, MAR Registro de datos de memoria, MBR Registro de estado, RE ARCOS Estructura de Computadores 9
Banco de registros 10 Agrupación de registros. Típicamente un número de registros potencia de 2. n registros log 2 n bits para seleccionar. k bits de selección 2 k registros. Elemento fundamental de almacenamiento. Acceso muy rápido. ARCOS Estructura de Computadores 10
Banco de registros 11 A n B n RA RB RC k k k 0 1 SC 2 k -1 E n ARCOS Estructura de Computadores 11
Banco de registros 12 A n B n RA RB k k 0 1 Con 32 registros, k=5 RC k SC 2 k -1 E n ARCOS Estructura de Computadores 12
13 Banco de registros A n B Qué valor tiene que tener RA para sacar por A el contenido del registro 14? n RA RB RC k k k 0 1 SC 2 k -1 E n ARCOS Estructura de Computadores 13
Esquema para lectura A B RA k 0 1 2 k -1 M U X RB k M U X ARCOS Estructura de Computadores 14
Unidad aritmético lógica 15 A B n n OP p 2 p operaciones aritméticas y lógicas distintas n R Registro de Estado Acarreo Desbordamiento Cero Positivo Negativo ARCOS Estructura de Computadores 15
Unidad de control 16 Resto de procesador Unidad de control Señales de control Señal de reloj Valor de cada señal de control para cada ciclo de reloj ARCOS Estructura de Computadores 16
Acceso a la memoria 17 L E Memoria n ADDR Dirección n DATA Dato ARCOS Estructura de Computadores 17
Búfer triestado 18 E S E C S 0 0 Z 0 0 Z C 0 1 0 1 1 1 ARCOS Estructura de Computadores 18
Acceso a un bus 19 CA CB CC RA RB RC TA TB TC Bus ARCOS Estructura de Computadores 19
Ejemplo Qué señales de control hay que activar para cargar el contenido de RA en RB? CA CB CC RA RB RC TA TB TC Bus ARCOS Estructura de Computadores 20
Camino de datos (RB RA) 21 CA CB CC RA RB RC TA TB TC Bus Situación con todas las señales desactivadas ARCOS Estructura de Computadores 21
Camino de datos (RB RA) 22 CA CB CC RA RB RC TA TB TC Bus ARCOS Estructura de Computadores 22
23 Estructura de un computador y procesador basado en bus ARCOS Estructura de Computadores 23
Otros registros PC: contador de programa RI: registro de instrucción SP: puntero de pila MAR: registro de direcciones de memoria MBR: registro de datos de memoria RE: registro de estado Registros transparentes al usuario: RT1, RT2, RT3. ARCOS Estructura de Computadores 24
Características 25 Computador de 32 bits La memoria se direcciona por bytes Un ciclo de lectura y escritura Banco de 32 registros visibles R0..R31 Asumir como en el MIPS R0 = 0 y SP = R29 Registros temporales RT1, RT2, RT3: no visibles Otros registros de control y estado MAR, MBR, PC, RE, RI ARCOS Estructura de Computadores 25
Señales de control Memoria principal L E Bus de direcciones Bus de datos Bus de control Procesador Td Ta 4 Señales de control Bus Interno C1 RA RB RC SC C2 MAR MBR PC C4 C6 C3 C5 RI T3 T4 T8 A T1 Banco de Registros T2 B C9 MA Cod. OP 0 RT1 MUX A + C10 ALU RT2 1 0 1 MB MUX B T5 T6 RE T7 Unidad de Control C7 C8 Señales de interrupción E C11 RT3 ARCOS Estructura de Computadores 26
Señales de control Señales de acceso a memoria Señales de carga en registros Señales de control de las puertas triestado Señales de selección de los MUX Señales de control del banco de registros (RA, RB, RC y SC) ARCOS Estructura de Computadores 27
Unidad de control Funciones básicas Lectura de instrucciones de la memoria Decodificación Ejecución de instrucciones Arranque Lectura de la instrucción Decodifación Ejecución de la instrucción Parada ARCOS Estructura de Computadores 28
Lenguaje nivel RT Lenguaje de nivel de transferencia de registros. Registro1 Registro2 Especifica lo que ocurre en el computador mediante transferencias de datos entre registros. ARCOS Estructura de Computadores 29
Operaciones elementales Operaciones de transferencia MAR PC Operaciones de proceso R1 R2 + RT2 Lenguaje RT Lenguaje de nivel de transferencia de registros. Especifica lo que ocurre en el computador mediante transferencias de datos entre registros. ARCOS Estructura de Computadores 30
Señales de control 31 Especificación de las señales de control activas en cada ciclo de reloj. Se puede generar a partir del nivel RT. Op. Elemental Señales de control activadas (resto 0) MAR PC T4, C1 R1 R2 + RT1 RB = 00011 (R2) MA = 1 MB = 0 Cod Op. = SUMA T5 RC = 00001 (R1) SC ARCOS Estructura de Computadores 31
Reloj Un computador es un elemento síncrono Controla el funcionamiento ciclo El reloj temporiza las operaciones En un ciclo de reloj se ejecutan una o más operaciones elementales siempre que no haya conflicto Durante el ciclo se mantienen activadas las señales de control necesarias En un mismo ciclo se puede realizar MAR PC y RT3 RT2 + RT1 En un mismo ciclo no se puede realizar MAR PC y R1 RT3 por qué? ARCOS Estructura de Computadores 32
Ejercicio Cuál es la duración del ciclo de un computador con una frecuencia de reloj de 1 GHz? ARCOS Estructura de Computadores 33
Fases de la ejecución de instrucciones 34 Lectura de la instrucción, captación o fetch Leer la instrucción almacenada en la dirección de memoria indicada por PC y llevarla a RI. Incremento del PC Decodificación Análisis de la instrucción en RI para determinar: La operación a realizar. Direccionamiento a aplicar. Señales de control a activar Ejecución Generación de las señales de control en cada ciclo de reloj. ARCOS Estructura de Computadores 34
Ejemplo: Lectura de la instrucción 35 C1: MAR PC C2: PC PC + 4 C3: MBR MP C4: RI MBR C1: MAR PC C2: PC PC + 4, MBR MP C3: RI MBR Posibilidad de operaciones simultáneas ARCOS Estructura de Computadores 35
Lectura de la instrucción (c1) 36 C1: MAR PC C2: PC PC + 4, MBR MP C3: RI MBR ARCOS Estructura de Computadores 36
Lectura de la instrucción (c2) 37 C1: MAR PC C2: PC PC + 4, MBR MP C3: RI MBR ARCOS Estructura de Computadores 37
Lectura de la instrucción (c3) 38 C1: MAR PC C2: PC PC + 4, MBR MP C3: RI MBR ARCOS Estructura de Computadores 38
Señales de control del ciclo de fetch 39 Especificación de las señales de control activas en cada ciclo de reloj. Se puede generar a partir del nivel RT. C1: MAR PC C2: PC PC + 4, MBR MP C3: RI MBR C1: T4, C1 C2: C4, Td, L, C2, C3: T3, C6 ARCOS Estructura de Computadores 39
Ejecución completa de lw $reg, dir C1: MAR PC C2: PC PC + 4, MBR MP C3: RI MBR C4: Decodificación C5: MAR RI(dir) C6: MBR MP C7: $Reg MBR ARCOS Estructura de Computadores 40
41 Ejercicio: operaciones elementales para otras instrucciones Instrucciones que caben en una palabra: sw $reg, dir add $rd, $ro1, $ro2 addi $rd, $ro1, inm lw $reg1, desp($reg2) j dir jal dir jr $reg beq $ro1, $ro2, desp Instrucciones que ocupan varias palabras: addm R1, dir R1 R1 + MP[dir] ARCOS Estructura de Computadores 41
Modos de ejecución Modo usuario El procesador no puede ejecutar instrucciones privilegiadas (ejemplo: instrucciones de E/S, de habilitación de interrupciones, ) Si un proceso de usuario ejecuta una instrucción privilegiada se produce una interrupción Modo núcleo Reservado al sistema operativo El procesador puede ejecutar todo el repertorio de instrucciones Se indica con un bit situado en el registro de estado ARCOS Estructura de Computadores 42
Interrupciones Señal que llega a la unidad de control y que rompe la secuencia normal de ejecución Causas: Cuando ocurre un error en la ejecución de la instrucción (división por cero, ) Ejecución de una instrucción ilegal Acceso a una posición de memoria ilegal Cuando un periférico solicita la atención del procesador El reloj. Interrupciones de reloj Cuando se genera una interrupción se detiene el programa actual y se transfiere la ejecución a otro programa que atiende la interrupción ARCOS Estructura de Computadores 43
Clasificación de las interrupciones Excepciones hardware síncronas División por cero, acceso a una posición de memoria ilegal, Excepciones hardware asíncronas Fallos o errores en el HW Interrupciones externas Periféricos, interrupción del reloj Llamadas al sistema Instrucciones máquina especiales que generan una interrupción para activar al sistema operativo ARCOS Estructura de Computadores 44
Tratamiento de las interrupciones Interrupciones inhabilitadas Arranque Lectura de la instrucción Ejecución de la instrucción Ciclo de reconocimiento de la interrupción Interrupciones habilitadas Parada ARCOS Estructura de Computadores 45
Ciclo de reconocimiento de la interrupción Durante este ciclo la Unidad de control realiza los siguientes pasos: Comprueba se hay activada una señal de interrupción. Si está activada: Salva el contador de programa y el registro de estado Pasa de modo usuario a modo núcleo Obtiene la dirección de la rutina de tratamiento de la interrupción Almacena en el contador de programa la dirección obtenida (de esta forma la siguiente instrucción será la de la rutina de tratamiento) ARCOS Estructura de Computadores 46
Rutina de tratamiento de la interrupción Forma parte del código del sistema operativo Salva el resto de registros del procesador Atiende la interrupción Restaura los registros del procesador utilizados por el programa interrumpido Ejecuta una instrucción máquina especial: RETI Restaura el registro de estado del programa interrumpido (fijando de nuevo el modo del procesador a modo núcleo) Restaura el contador de programa (de forma que la siguiente instrucción es la del programa interrumpido). ARCOS Estructura de Computadores 47
Interrupciones vectorizadas Memoria del sistema operativo Elemento que interrumpe INT vector Unidad de Control vector Rutina de tratamiento de la interrupción ARCOS Estructura de Computadores 48
Diseño de la unidad de control RI CO RE Señales de interrupción Unidad de Control Señales de control Señal de reloj Cada una de las señales de control es función del valor de: El contenido del RI El contenido de RE El momento del tiempo ARCOS Estructura de Computadores 49
Diseño de la unidad de control Para cada instrucción máquina: Definir el comportamiento en lenguaje RT en cada ciclo de reloj Traducir el comportamiento a valores de cada señal de control en cada ciclo de reloj Diseñar un circuito que genere el valor de cada señal de control en cada ciclo de reloj ARCOS Estructura de Computadores 50
Ejemplo de máquina de estados MAR PC PC PC + 4 MBR MP 2 1 lectura add r1, r2 lw r1, dir bz dir sw r1 R1 R1 + R2 3 CO = 11 AND z =0 (bz) 4 CO = 00 (add) RI MBR CO = 01 (lw) CO = 10 5 (sw) 8 CO = 11 AND z =1 (bz) 11 R1 R1 + R2 MAR RI(direccion) MAR RI(direccion) PC RI(direccion) 6 lectura 9 MBR MP MBR R1 7 10 escritura R1 MBR MP MBR ARCOS Estructura de Computadores 51
Técnicas de control Unidad de control cableada Unidad de control microprogramada ARCOS Estructura de Computadores 52
Unidad de control cableada Construcción mediante puertas lógicas utilizando métodos de diseño Características: Laborioso y costos diseño y puesta a punto del circuito Difícil de modificar Rediseño completo Muy rápida ARCOS Estructura de Computadores 53
Unidad de control microprogramada RI RE Señales de interrupción CO Señal de reloj Secuenciador de la memoria de control C1 C2 C3 C4 R5 C6 C7 C8 C9 C10 C11 Td Ta T1 T2 T3 T4 T5 T6 T7 T8 RA4 RA3 RA2 Ra1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 Memoria de Control RB4 Rb3 RB2 RB1 RB0 RC4 RC3 RC2 RC1 RC0 SC L E Cop3 Cop2 Cop1 Cop0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Microinstrucci\on Señales de control ARCOS Estructura de Computadores 54
Unidad de control microprogamada Utiliza una memoria de control donde se almacena el valor de cada señal de control en cada ciclo de reloj Características: Fácil modificación Facilidad para incorporar instrucciones complejas Hardware más simple ARCOS Estructura de Computadores 55
Microinstrucciones Cada palabra de la memoria de control define el valor de cada señal de control en un periodo Microinstrucción Una microinstrucción tiene un bit por cada señal de control del procesador ARCOS Estructura de Computadores 56
Microcódigo y microprograma Microprograma: conjunto de microinstrucciones que permite ejecuta una instrucción Microcódigo (firmware): conjunto de microprogramas de una máquina ARCOS Estructura de Computadores 57
Arranque de un computador El Reset carga valores predefinidos en registros PC dirección de arranque del programa iniciador (memoria ROM) Se ejecuta el programa iniciador Test del sistema Carga en memoria el cargador del sistema operativo PC dirección del programa cargador del sistema operativo Se ejecuta el programa cargador del SO que carga el resto del sistema operativo Se pasa a ejecutar el sistema operativo ARCOS Estructura de Computadores 58
Modelo de procesador basado en camino de datos (sin bus) PC +4 Memoria Instrucciones Banco de registros Memoria Datos ARCOS Estructura de Computadores 59
Tiempo de ejecución de un programa = _ + _ N es el número de instrucciones máquina del programa CPI es el número medio de ciclos de reloj necesario para ejecutar una instrucción t ciclo_cpi es el tiempo que dura el ciclo de reloj del procesador AMI es el número medio de accesos a memoria por instrucción t ciclo_mem es el tiempo de acceso a memoria ARCOS Estructura de Computadores 60
Paralelismo a nivel de instrucción Procesamiento concurrente de varias instrucciones Procesadores segmentados: utilizan técnicas de pipeline para procesar varias instrucciones simultáneamente Procesadores superescalares: procesador segmentado que puede ejecutar varias instrucciones en paralelo cada una de ellas en una unidad segmentada diferente Procesadores multicore: procesador que combina dos o más procesadores independientes en un solo empaquetado ARCOS Estructura de Computadores 61
Segmentación de instrucciones. Pipeline Etapas de ejecución de una instrucción LI: Lectura de la instrucción, incremento del PC D: Decodifcación LO: Lectura de operandos EJ: Ejecución de la instrucción EO: Escritura de operandos ARCOS Estructura de Computadores 62
Ejecución sin pipeline Time LI D LO EJ EO LI D LO EJ EO Si cada fase dura N ciclos de reloj, se ejecuta una instruccón cada 5 N ciclos ARCOS Estructura de Computadores 63
Ejecución con pipeline Time LI D LO EJ EO LI D LO EJ EO LI D LO EJ EO LI D LO EJ EO Si cada fase dura N ciclos de reloj, se ejecuta una instruccón cada N ciclos ARCOS Estructura de Computadores 64
Superescalar Tiempo LI D LO EJ EO LI D LO EJ EO LI D LO EJ EO LI D LO EJ EO LI D LO EJ EO LI D LO EJ EO LI D LO EJ EO LI D LO EJ EO Pipeline con varias unidades funcionales en paralelo ARCOS Estructura de Computadores 65
Multicores Múltiples procesadores en el mismo circuito ARCOS Estructura de Computadores 66