Procesadores de 32 bits. Tecnologías, Organización y Microarquitectura

Documentos relacionados
Tecnologías, Organización y Microarquitectura

Organización del Computador I. Memoria Cache. Autor: Alejandro Furfaro

Organización del Computador I. Memoria Cache. Autor: Alejandro Furfaro

Organización del Computador 1 Memoria Cache

Cache. Ing. Marcelo Doallo. Septiembre 2013

Organización del Computador. Memorias

Organización del Computador 1 Memorias

Micro arquitectura. Técnicas Digitales III Ing. Gustavo Nudelman Universidad Tecnológica Nacional - Facultad Regional Buenos Aires

QUÉ ES LA MEMORIA CACHÉ?

Memoria y caché. Organización del Computador I, verano de 2016

Sistema Cache. Técnicas Digitales III Ing. Gustavo Nudelman Universidad Tecnológica Nacional - Facultad Regional Buenos Aires

Arquitectura de Procesadores

Organización de Procesadores

Microprocesadores para comunicaciones. Escuela Técnica Superior de Ingenieros de Telecomunicación. Organización y estructura de las memorias caché

ARQUITECTURA DE VON NEUMANN Y HARVARD

MODULO DE MEMORIA RAM. Ing. Raúl Rojas Reátegui

Sistema de memoria. Introducción

Sistemas de Computadoras

Memoria y Entrada/Salida Tecnología Organización - Expansión

El nivel ISA (II)! Conjunto de Instrucciones

Tipos De Procesadores

Guía de ejercicios # 11 - Jerarquía de memoria

Unidad 4 - Procesamiento paralelo. Arquitectura de computadoras. D o c e n t e : E r n e s t o L e a l. E q u i p o : J e s s i c a F i e r r o

Arquitectura de Computadoras para Ingeniería

Microprocesador. Introducción. Instituto Sagrado Corazón de Jesús

INFORME MEMORIA CACHE Y MEMORIA VIRTUAL.

Aspectos avanzados de arquitectura de computadoras Superescalares I. Facultad de Ingeniería - Universidad de la República Curso 2017

Introducción a la Computación. Capitulo 4 Memoria Cache

ARQUITECTURA DE COMPUTADORAS

Unidad II: Memorias. Ing. Marglorie Colina

Capítulo 3. Microcontroladores 3.1 Definiciones

Electrónica Digital II

Arquitectura de Computadoras Trabajo Práctico N 7 Pipeline de Instrucciones Primer Cuatrimestre de 2010

UNIDAD CENTRAL DE PROCESO

Tema 1: PROCESADORES SEGMENTADOS

Universidad de Los Andes Escuela de Ingeniería de Sistemas Departamento de Computación Arquitectura de Computadores. Clase 24

Memorias RAM. Basilio B. Fraguela Rodríguez. Copyright Basilio B. Fraguela 2006

Controlador de Floppy Disk - DMA

Arquitectura de Computadores II Clase #16

Unidad I: Organización del Computador. Ing. Marglorie Colina

TEMA 4 ESTRUCTURA VON-NEUMANN DEL COMPUTADOR DIGITAL

Arquitectura de Computadores II Clase #6

Introducción a memorias cache

Sistemas con Microprocesadores I

Procesadores de 32 bits. Tecnologías, Organización y Micro Arquitectura (segunda parte)

Trabajo Práctico Número 6

Aspectos avanzados de arquitectura de computadoras Pipeline. Facultad de Ingeniería - Universidad de la República Curso 2017

Estructura de un Ordenador

Organización del Computador I. Introducción e Historia

Cuestionario Unidad 4: Procesamiento paralelo 2012

UNIVERSIDAD TECNOLÓGICA DE LA MIXTECA. Ingeniería en Electrónica EL MICROCONTROLADOR PIC16F84 PRESENTA: M. C. Felipe Santiago Espinosa

Tema: Microprocesadores

Contenidos. Arquitectura de ordenadores (fundamentos teóricos) Elementos de un ordenador. Periféricos

Memoria Caché. Algorítmo de Mapeo Directo

Introducción a la arquitectura PIC

Arquitectura de Computadores II Clase #5

Microcontroladores. Unidad 1

1.2.-Analisis de los componentes

Elementos constituyentes de la ejecución de un programa

Microarquitectura (2da parte)

Arquitectura del Computador. Programación 1 er semestre 2013

ENTRADA-SALIDA. 2. Dispositivos de Carácter: Envía o recibe un flujo de caracteres No es direccionable, no tiene operación de búsqueda

Estructura de Computadores Tema 1. Introducción a los computadores

Arquitectura de Computadores Problemas (hoja 4). Curso

Procesador: Pentium 4 SL6S9. Año 2001, 2.4 GHZ 512 KB L2 caché Hecho en Filipinas

Sistema electrónico digital (binario) que procesa datos siguiendo unas instrucciones almacenadas en su memoria

Arquitectura de Computadoras

Definición de Arquitectura

Introducción a la Computación. Capítulo 10 Repertorio de instrucciones: Características y Funciones

Procesadores Superescalares

MICROPROCESADOR. Ing. Raúl Rojas Reátegui

Tema 1: PROCESADORES SEGMENTADOS

Arquitectura de Computadoras Arquitectura del Computador Basadas en las Notas de Teórico Versión 5.1 del Dpto. de Arquitectura-InCo-FIng

2º Cuatrimestre MÓDULO 11: Introducción a la jerarquía de memoria. fc 2

Subsistemas de memoria. Departamento de Arquitectura de Computadores

INTRODUCCIÓN Y MEDIDAS DE RENDIMIENTO MEDIDAS DE RENDIMIENTO

Arquitectura de Computadoras

GRADO EN INGENIERÍA DE COMPUTADORES

Memorias FORMAS DE ESCRITURA

Microprocesadores. Procesadores IA-32 e Intel R 64 Tareas. Alejandro Furfaro

Arquitectura de Computadores II Clase #3

ARQUITECTURA DE LOS SISTEMAS BASADOS EN MICROPROCESADOR

COMPONENTES DEL PC LEONARDO OLIVARES VILLA MATEO CARDONA ARENAS

CAPÍTULO 2 PROCESADORES SUPERESCALARES

Arquitectura de Computadoras Trabajo Práctico N 8 Pipeline de Instrucciones 1 Primer Cuatrimestre de 2016

Notas de Teórico. Arquitectura de von Neumann

Arquitectura de Computadores II Clase #16

Registros. Cache L1. Cache L2. Memoria Principal (RAM) Memoria Secundaria (Disco) Memoria Terciaria (Cinta)

Seminario 1: Procesadores paralelos

Organización de computadoras. Clase 11. Universidad Nacional de Quilmes. Lic. Martínez Federico

INTEGRANTES: AMEZQUITA MERCADO JUDITH ADRIANA. MORENO MEZA JHOANA JOSSELYN. ORTEGA ALEJANDRO JOSÉ FRANCISCO. ZAVALA RAMÍREZ SILVIA DEL C.

UNIDAD TEM ATICA 3: ACELERACI ON DEL ACCESO A MEMORIA.

Tema 0. Introducción a los computadores

Arquitectura y Tecnología de Computadores (09/10) Organización. Jerarquía de Memoria

Registros. Cache L1. Cache L2. Memoria Principal (RAM) Memoria Secundaria (Disco) Memoria Terciaria (Cinta)

Práctica 5 - Memoria Cache

Arquitectura Interna del 8088

Estructura Interna de La PC. 1. Microprocesadores 2. I/O ( Entrada / Salida) 3. Memoria

Diseño de la jerarquía de memoria

Organización de Computadoras

Transcripción:

Procesadores de 32 bits Tecnologías, Organización y Microarquitectura

Tecnología de Integración Nanotecnología

Tecnología de Integración 65 nm nanotechnology Imágenes obtenidas con TEM (Transmission Electron Microscope) de una cepa del virus de la influenza, y de un transistor construido con la tecnología de 65 nm reemplazada en el 2007 por la de 45 nm, con la que se construyen los procesadores Core2Duo y Xeon Quad Core de Intel. Los 30 nm representan el ancho del Gate del transistor NMOS

Proceso y componentes de la técnica de Litografía Litografía (Lithography): Proceso por el cual se crean patrones específicos en un chip. Los chips actuales consisten en un sustrato de silicio encima del cual se crean mas de 20 capas de materiales de diferentes tipos. Éstos forman los transistores y las pistas que los interconectan en una configuración particular, formando un microprocesador, su chipset, la memoria, o cualquier otro chip.

Organización de un computador Conceptos generales: Arquitectura vs. Micro-Arquitectura

Arquitectura y Micro-Arquitectura Arquitectura Recursos accesibles para el programador Registros Set de instrucciones Estructuras de memoria (descriptores de segmento y de página p. ej.) Estos recursos se mantienen y evolucionan a lo largo de los diferentes modelos de procesadores de esa arquitectura Micro Arquitectura Implementación en el silicio de la arquitectura. Es lo que hay detrás del set de registros y del modelo de programación Puede ser muy simple o sumamente robusta y poderosa. La arquitectura IA-32 se inicia con el procesador 80386 en 1985, y llega hasta el procesador Intel Core2Duo actualmente. Esto se traduce en seis diferentes generaciones de Micro- Arquitectura para mas de 15 modelos de procesadores.

Enfoques CISC (Complex Instruction Set Computer) Instrucciones que realizan tareas complejas RISC (Reduced Instruction Set Computer) Instrucciones que realizan operaciones sencillas MISC (Minimal Instruction Set Computer) Mínimo de operaciones necesarias

Ejemplo CISC (Intel) Prefijo OpCode 0xF3 0xA4 Instrucción: REP MOVS Copia CX bytes de DS:SI, a ES:DI. MOVS: Copia el dato en DS:SI, a ES:DI. Dependiendo de un flag, SI y DI son incrementados (+1) o decrementados (-1) REP: Prefijo. Decrementa CX y hace que se repita la operación hasta que CX llegue a 0

Ejemplo RISC La misma instrucción implementada en una MIPS: Asumamos que en $s3 esta el fuente, $s4 el destino y $s5 es el contador bucle: lb $t0,0,($s3) ; t0 = mem[s3] sb $t0,0, $s4 ; mem[s4] = t0 add $s3,$s3,1 add $s4,$s4,1 sub $s5,$s5,1 be $s5,0,fin j bucle fin:

Ciclo de instrucciones: Etapas Búsq. Instruc. Decod Busq. Operando Ejec Result Requiere una cantidad de hardware considerable. En los procesadores sencillos solo una parte del hardware se activa en un determinado momento: la que se necesita para resolver la micro operación. Este método es poco eficiente. En nuestro ejemplo el procesador podrá ejecutar una instrucción cada 5 ciclos de clock

Pipeline de instrucciones Técnica que permite superponer en el tiempo la ejecución de varias instrucciones a la vez No requiere hardware adicional. Solo se necesita lograr que todas las partes del procesador trabajen a la vez Trabaja con el concepto de una línea de montaje: Cada operación se descompone en partes Se ejecutan en un mismo momento diferentes partes de diferentes operaciones Cada parte se denomina etapa (stage) B u s q. I n s t. 1 B u s q. I n s t. 2 D e c. F I I n s t. 1 B u s q. I n s t. 3 D e c. I n s t. 2 B u s q. O p. 1 B u s q. I n s t. 4 D e c. I n s t. 3 B u s q. O p. 2 E j e c. I n s t. 1 B u s q. I n s t. 5 D e c. I n s t. 4 B u s q. O p. 3 E j e c. I n s t. 2 E s c r i b. R e s. 1 B u s q. I n s t. 6 D e c. I n s t. 5 B u s q. O p. 4 E j e c. I n s t. 3 E s c r i b. R e s. 2 B u s q. I n s t. 7 D e c. I n s t. 6 B u s q. O p. 5 E j e c. I n s t. 4 E s c r i b. R e s. 3 Resultado Resultado Una Una vez vez en en régimen régimen ejecuta ejecuta a a razón razón de de una una instrucción instrucción por por ciclo ciclo de de clock clock

Etapas de un pipeline Podemos desagregar mas las micro operaciones y generar pipelines de mas etapas. Ej: Autor: Alejandro Furfaro - 2008 12

Etapas de un pipeline Incluir el chequeo de interrupciones

Pipeline de seis etapas

Efecto de un branch en un Pipeline de seis etapas

Tratamiento de los saltos en un pipeline Se implementan unidades de predicción de saltos. Asumir que nunca se salta Asumir que siempre se salta Predecir por OpCOde.. Salta / NO salta alternativamente Utilizar una memoria ultrarrápida con una tabla de historia de saltos.

Predicción de saltos Se incluye un buffer de saltos Memoria pequeña muy veloz Se guardan bloques de código. Cada vez que se tiene un salto se estudia si el destino está en el buffer Si lo esta se lo toma de allí en caso de que la condición de salto así lo determine

Arquitectura Superescalar Arquitectura de procesamiento en la que se puede iniciar varias instrucciones en forma simultánea y ejecutarse en forma independiente El pipeline permite que varias instrucciones estén ejecutándose en un mismo momento, pero siempre que se encuentren cada una en diferentes etapas del pipeline Un procesador superescalar extiende este paralelismo permitiendo que en una etapa del pipeline se puedan ejecutar varias instrucciones en forma independiente en un mismo ciclo de clock Existen dos modelos para lograr este efecto Super pipeline Superescalar

Arquitectura superescalar de dos vías. Dos Pipelines de instrucciones Al tener dos unidades de ejecución paralelas, se duplica la actividad interna del procesador alcanzando la velocidad teórica de dos instrucciones por ciclo de clock

Limitaciones al modelo superescalar Dos o mas instrucciones compiten por acceso en el mismo momento al mismo recurso: Registro. Dirección de Memoria Unidad funcional del procesador Las instrucciones de transferencia de flujo (denominadas branch, y que son generalmente saltos, o call), hacen que todas las que vienen a continuación sean descartadas de las etapas del pipeline en el que se ejecuta la instrucción de transferencia de flujo. Instrucciones con interdependencia de resultados. Una instrucción en la que uno de los operandos es el resultado de otra que se está ejecutando al mismo tiempo, debe ser detenida hasta que se obtenga el resultado mencionado.

Efecto de las Dependencias

Casos de Pipelining en el IA-32

Ejemplo de Super pipeline: Pentium IV

Memoria Cache

Memorias: Evolución Pioneros: Maurcice Wilkes con la primer memoria de tanque de mercurio para la computadora EDSAC. 2 bytes: 1947. Visionarios. "640K debe ser suficiente para cualquiera. Bill Gates, 1981

Tecnología de memorias: RAM Dinámica CAS RAS Cd Buffer Bit de datos de salida al bus Transistor Diagrama de un bit elemental de DRAM (Dynamic RAM). Almacena la información como una carga en una capacidad espuria de un transistor. Una celda (un bit) se implementa con un solo transistor máxima capacidad de almacenamiento por chip. Ese transistor consume mínima energía Muy bajo consumo. Al leer el bit, se descarga la capacidad necesita regenerar la carga aumenta entonces el tiempo de acceso de la celda.

Tecnología de memorias: RAM Estática Línea de Bit Línea de Bit Selección 1 3 4 6 2 5 Diagrama del biestable de un bit básico de SRAM (Static RAM). Almacena la información en un biestable. Una celda (un bit) se compone de seis transistores menor capacidad de almacenamiento por chip. 3 transistores consumen energía máxima en forma permanente y los otros 3 consumen mínima energía Mayor consumo La lectura es directa y no destructiva tiempo de acceso muy bajo

Estructura de Bus clásica CONTROL Bus de de Control Procesador DATOS Buffer de de Datos ADDRESS Buffer de de Address Bus Local del Procesador Desde fines de los años 80, los procesadores desarrollaban velocidades muy superiores a los tiempos de acceso a memoria. En este escenario, el procesador necesita generar wait states para esperar que la memoria esté lista ( READY ) para el acceso. Memoria del del Sistema BUS DEL SISTEMA E/S E/S del del Sistema Tiene sentido lograr altos clocks en los procesadores si no puede aprovecharlos por tener que esperar (wait) a la memoria?

Crecimiento de la velocidad de clock de las CPU versus memoria 1100 1000 900 Pentium III 1GHz 800 700 600 500 Pentium II 400 MHz. 400 300 200 100 386 DX 33 MHz 486 DX4 100 MHz. Memorias 89 90 91 92 93 94 95 96 97 98 99 00

El problema RAM dinámica (DRAM) Consumo mínimo. Capacidad de almacenamiento comparativamente alta. Costo por bit bajo. Tiempo de acceso alto (lento), debido al circuito de regeneración de carga. Si construimos el banco de memoria utilizando RAM dinámica, no aprovechamos la velocidad del procesador. RAM estática (SRAM) Alto consumo relativo. Capacidad de almacenamiento comparativamente baja. Costo por bit alto. Tiempo de acceso bajo (es mas rápida). Si construimos el banco de memoria utilizando RAM estática, el costo y el consumo de la computadora son altos.

La solución: Memoria cache Se trata de un banco de SRAM de muy alta velocidad, que contiene una copia de los datos e instrucciones que están en memoria principal El arte consiste en que esta copia esté disponible justo cuando el procesador la necesita permitiéndole acceder a esos ítems sin recurrir a wait states. Combinada con una gran cantidad de memoria DRAM, para almacenar el resto de códigos y datos, resuelve el problema mediante una solución de compromiso típica. Requiere de hardware adicional que asegure que este pequeño banco de memoria cache contenga los datos e instrucciones mas frecuentemente utilizados por el procesador.

Referencias El tamaño del banco de memoria cache debe ser: Suficientemente grande para que el procesador resuelva la mayor cantidad posible de búsquedas de código y datos en esta memoria asegurando una alta performance Suficientemente pequeña para no afectar el consumo ni el costo del sistema. Se dice que se logra un hit cuando se accede a un ítem (dato o código) y éste se encuentra en la memoria cache. En caso contrario, se dice que el resultado del acceso es un miss. Se espera un hit rate lo mas alto posible hit rate= Cantidad de accesos con presencia en Memoria Cache Cantidad total de accesos a memoria

Operación de Lectura de memoria Inicio CPU envía señal de lectura Hit!! Busca ítem en cache Miss Busca ítem en memoria del sistema Busca ítem en cache y envía a la CPU Escribe ítem en el cache Actualiza directorio cache Envía ítem a la CPU Fin

Estructura de Bus del sistema con cache Procesador Memoria cache CONTROL CONTROL Controlador de de Memoria caché DATOS ADDRESS Bus Local del procesador Buffer de de Datos Buffer de de Address Bus Local del controlador cache Bus de de Control BUS DEL SISTEMA

Como trabaja el controlador cache El controlador cache trabaja mediante dos principios que surgen de analizar el comportamiento de los algoritmos de software que se emplean habitualmente. Principio de vecindad temporal: Si un ítem es referenciado, la probabilidad de ser referenciado en el futuro inmediato es alta. Principio de vecindad espacial: Si un ítem es referenciado, es altamente probable que sean referenciados sus ítems vecinos. Ejemplo: Algoritmo de convolución for (i = 0 ; i < 256 ; i++ ){ suma = 0.0f; for (j = 0 ; (j <= i && j < 256) ; j++) suma += v0[i-j] * v1[j]; faux[i] = suma; } i, j, suma, se utilizan a menudo. Por lo tanto si se mantienen en el cache, el tiempo de acceso a estas variables por parte del procesador es óptimo.

Estructura de memoria cache Tag Línea Dirección 0 1 2 3 4 5 6 7 8 9 Línea Línea: Elemento mínimo de palabra de datos dentro del cache. Corresponde a un múltiplo del tamaño de la palabra de datos de memoria. Razón: Cuando se direcciona un ítem en memoria generalmente se requerirá de los ítem que lo rodean (Principio de vecindad espacial) Ancho de palabra

Memoria Cache Procesador Bus del Procesador (Bus local) Baja capacidad, pero accesible a la velocidad del procesador!! Controlador de de Memoria caché Memoria DRAM Subsistema caché Memoria Memoria SRAM SRAM ultrarrápida ultrarrápida (cache) (cache) Bus del Sistema Control del bus local del controlador cache Arbitración del Bus Control del bus Local del Procesador Decodificaciones del bus local del procesador Hardware adicional. Mantiene el cache con los datos mas frecuentemente utilizados por el procesador Interfaz con el Bus Local Interfaz con el Procesador Configuración Directorio de Cache Control del Cache Bus de Address del procesador Bus de Snoop Bus de Control de la Memoria Cache

Organización del caché: Mapeo Directo Bit de validez del Tag Tag 1 Línea = 4 bytes Línea 17 bits Set 0 Bits de validez de las líneas Línea Set 1 32 Kbytes (igual tamaño Que el del cache) Pag.2 17-1 Set 1023 Directorio de Caché Interno Memoria Caché Pag.0 4 Gbytes de Memoria Principal

Organización del caché de mapeo directo Caché Address (1 de 8 KLíneas) A 31 A 15 A 14 A 5 A 4 A 2 Tag de 17 bits (1 de las 2 17 páginas) 0 Set Address (1 de 1024 sets) Selector de Línea (1 de 8 líneas) Bit de validez del Tag Bits de validez de la línea Nro de Set 1 1023 Directorio de Caché Interno

Organización del caché: Asociativo de dos vías Bit de validez del Tag 1 Línea = 4 bytes Tag Línea Línea 18 bits Set 0 18 bits Set 1 Bits de validez de las líneas Bits LRU Bits LRU 18 bits 18 bits Línea 16 Kbytes (igual tamaño Que el de cada banco del cache) 18 bits Bits LRU 18 bits Set 511 Pag.2 18-1 Directorio de Caché Interno Memoria Caché Pag.0 4 Gbytes de Memoria Principal

Organización del caché asociativo de dos vías Caché Address (1 de 4 KLíneas) A 31 A 14 A 13 A 5 A 4 A 2 Tag de 18 bits (1 de las 2 18 páginas) Set Address (1 de 512 sets) Selector de Línea (1 de 8 líneas) 0 Bit de validez del Tag Bits de validez de la línea Nro de Set 1 512 Directorio de Caché Interno