Tecnologías y Arquitecturas

Slides:



Advertisements
Presentaciones similares
Procesadores de bajo consumo: frente a 1. Introducción ARM Bajo Consumo Microarquitectura Intel Atom Bajo Consumo Microarquitectura Comparativa Bibliografía.
Advertisements

La unidad central de procesamiento o CPU
Memoria Cachés. Universidad de SonoraArquitectura de Computadoras2 Introducción Caché es el nivel de memoria situada entre el procesador y la memoria.
Soporte HW para Administración de Memoria Cecilia Hernández
Tipos de Procesadores AMD y INTEL
Conclusión del curso. Universidad de SonoraArquitectura de Computadoras2 Temas cubiertos Lenguaje ensamblador MIPS. Diseño de una CPU tradicional. Datapath.
Sistemas Operativos Avanzados
Tema: Historia de los Microprocesadores
Tipos de procesadores de ultima generación
Microprocesadores actuales
Arquitectura de Computadores Clase 21 Memoria Virtual IIC 2342 Semestre Rubén Mitnik Pontificia Universidad Católica de Chile Escuela de Ingeniería.
Vinculación de Instrucciones y Datos a Memoria Tiempo de compilación: si la dirección de memoria se conoce a priori, se puede generar código absoluto;
COMPUTACION PARALELA GLORIA PATRICIA FLOREZ ANGIE PAOLA ANCHICO.
Estructura de un ordenador. Ronald Valverde Zambrano.
Paginamiento / Paging Sistemas Operativos 16 de Septiembre de 2011.
Microprocesadores Alumno: Flores Americo 2016 Sede Villa Unión.
PLACA MADRE DE UNA COMPUTADORA IPCC - INFORMATICA APLICADA- -Baolini María Belén -Camargo Facundo.
El procesador Datapath y control. Universidad de SonoraArquitectura de Computadoras2 Introducción En esta parte del curso contiene: Las principales técnicas.
1 MEMORIAS Fundamentos de Informática Ingeniería Técnica Diseño Industrial.
ITESCO – Arquitectura Computadoras L. S. C. A. Raúl Monforte Chulin - MORCH Systems 1.1. Arquitectura básica y sus operaciones. Objetivo: El estudiante.
Procesamiento Digital de Señales.
Medición del rendimiento
Organización de computadoras
Hardware de Computador
Procesadores superescalares
Sistemas basicos Investigación la historia del Computador ¨servidor¨
Memoria Rendimiento del caché.
UNIDAD CENTRAL DE PROCESO CPU.
Superescalares Scheduling estático.
¿Qué es una computadora?
Memoria Introducción.
Arquitectura de Computadoras 2012
Pipelining Peligros (hazards).
En la siguiente presentación veremos algunos términos que debemos conocer para iniciar la educación virtual.
Tercera Generación de las Computadoras
Diferencias entre las arquitecturas de 64 bits de AMD e intel.
EL Procesador. República bolivariana de Venezuela.
Computadora La computadora es una máquina capaz de realizar y controlar a gran velocidad cálculos y procesos complicado que requieren una toma rápida de.
Presentamos.
Arquitectura 2013 Explicación 4.
Organización del Computador
Computación Curso 2017.
Organización del Computador
Hardware, software, y periféricos
Memoria virtual.
Pipelining Introducción.
¿Que es una computadora?
INFORMATICA BASICA BIENVENIDAS.
Almacenamiento El computador tiene 2 aspectos
Conceptos básicos.
UD1 (PARTE 2: NUMERACIÓN)
Tecnologías de información
Tecnologías y Arquitecturas
MAQUINA VIRTUAL Virtual PC
 La cuestión de la cantidad es simple, cuanto más memoria haya disponible, más podrá utilizarse. La velocidad óptima para la memoria es la velocidad.
.La Computadora. La computadora es una maquina capaz de realizar y controla a gran velocidad cálculos y procesos complicados que requieren una toma.
CURSO PROGRAMACIÓN BÁSICA SEMANA 2
SISTEMAS OPERATIVOS MEMORIA VIRTUAL.
Pipelining Peligros de control.
Procesadores El procesador es el elemento vital del PC.
2.4.3 Procesadores Tema 2 página 35
Regla de cálculo Funcionamiento.
El procesador Datapath y control.
Memoria Cachés.
Componentes de una computadora
Estructura de un equipo microinformático
Arquitectura del Hardware
INTRODUCCIÓN A LA INFORMÁTICA
Memoria Rendimiento del caché.
Pipelining Peligros de control.
Transcripción de la presentación:

Tecnologías y Arquitecturas Parte II 06:51

Temas de esta Clase Medición de performance Arquitecturas de gama alta Dhrystone MIPS y mejores benchmarks Arquitecturas de gama alta Superescalares, VLIW, memorias caches y MMU ¿Preguntas? ¡Gracias! 06:51

Medición de Performance Velocidad = cant._de_procesamiento / tiempo MIPS (pico) = millones de instrucciones nativas por segundo No es una buena métrica, porque: Las instrucciones individuales de diferentes ISAs no necesariamente hacen la misma cantidad de procesamiento. Si MIPS se basa en la instrucción más rápida (ej., NOP), entonces dice poco sobre el procesamiento real. Como “cantidad de procesamiento”, mejor que instrucciones nativas es usar un programa …escrito en un lenguaje, por ejemplo C así puede ser el mismo procesamiento, aunque los micros tengan diferentes conjuntos de instrucciones. así puede emplearse un mix realista de instrucciones. A los programas que se usan para esto se los llama benchmarks 06:51

Dhrystone Problema: ¿Qué programa usar como benchmark? Se lo usa mucho, aunque es cuestionado porque: Es pequeño, utiliza poca memoria No hace procesamiento en punto flotante No es representativo de las aplicaciones actuales El micro puede ser optimizado para “hacer trampa” La versión actual es Dhrystone 2.1 (1988) Para expresar el resultado de Dhrystone, se usa DMIPS (Dhrystone [VAX] MIPS) Para fijar una referencia, a una minicomputadora VAX 11/780 se le asigna 1 DMIPS A una máquina que corre Dhrystone n veces más rápido que la VAX, se le atribuyen n DMIPS Frecuentemente se le dice MIPS a secas Pero no confundirlo con el otro MIPS (pico) 06:51

Intel Core i7 EE-990x (6 cores) a 3,46 GHz Ejemplos Procesador DMIPS (aprox.) ATmega32A (AVR, 8 bits, 16 MHz) 5,9 ARM Cortex-M0 a 50 MHz 45 ARM Cortex-M3 a 100 MHz 125 ARM Cortex-A8 a 1 GHz 2000 Intel Atom-Z530 a 1,6 GHz 3200 Intel Core i7 EE-990x (6 cores) a 3,46 GHz 159000 (Sin embargo, para que esta tabla fuera más precisa, convendría aclarar qué compilador se usó en cada caso, qué opciones de compilación y otros detalles de ese estilo.) 06:51

MFLOPS MFLOPS (megaflops) = Millones de instrucciones de punto flotante por segundo Es similar a MIPS pico, pero la instrucción en cuestión es de punto flotante Puede ser una instrucción nativa, o una operación codificada en varias instrucciones nativas Pero ¿de qué operación se trata, y con qué precisión? Esas cosas no están bien definidas, lo que le quita mérito a la métrica Representa (imperfectamente) la performance del procesador para ejecutar programas de punto flotante Cuando un procesador incluye una unidad de punto flotante, aumenta mucho su performance medida en MFLOPS 06:51

Mejores Benchmarks SPEC CPU EEMBC (suena como embassy) BDTI Estándar para medir performance de computadoras Regularmente actualizado. La versión más reciente es CPU2006 Es una serie de programas (i.e., un suite) y sus datos de entrada Para integrar los resultados en uno solo, se usa la media geométrica Los programas se dividen en enteros y de punto flotante Se reporta SPECint06 y SPECfp06 EEMBC (suena como embassy) Son varios suites de benchmarks, cada uno apunta a un área de aplicación de sistemas embebidos. Ej.: Automotive, Consumer, Networking, etc. Tienen también uno genérico y gratuito: Coremark BDTI Para productos que hacen procesamiento digital de señales (DSP). 06:51

Actividad ¿Qué métrica podríamos usar para densidad de código? O sea, algo que represente qué tanta memoria ocupan los programas para el procesador en cuestión ¿Qué representa DMIPS dividido por frecuencia del ciclo de máquina? O sea que su unidad es [ DMIPS / MHz ] ¿Qué métricas podríamos usar para el consumo? Discútanlo en grupos de 2 a 4 personas, en unos minutos comparamos las respuestas 06:51

Temas de esta Clase Medición de performance Arquitecturas de gama alta Dhrystone MIPS y mejores benchmarks Arquitecturas de gama alta Superescalares, VLIW, memorias caches y MMU ¿Preguntas? ¡Gracias! 06:51

Segmentación (Pipelining) Repaso Ejemplos de código Assembly: LDR R1,[R0] LDR R3,[R2] ADD R1,R1,#200 CMP R5,R6 BEQ SonIguales ADD R5,R5,R4 ADD R5,R6,R7 SUB R4,R4,R5 06:51

Segmentación (Pipelining) Repaso 06:51

Multiple Inicio de Instrucciones Como vimos, un pipeline procesa varias instrucciones al mismo tiempo, pero en cada ciclo sólo se inicia una Pero un procesador puede tener “n” pipelines, para iniciar “n” instrucciones por ciclo y lograr así más paralelismo Los pipelines puede ser iguales o no Ej., uno para instrucciones aritméticas, otro para loads y stores Si el procesador puede iniciar “n” a la vez, se le dice n-issue. Para esto, hay dos tipos de arquitectura, que difieren en dónde se decide qué instrucciones se van a iniciar en paralelo: Superescalar: Lo decide el procesador, en tiempo de ejecución Se usa, por ej., en los procesadores de PC desde el Pentium, y en procesadores para embebidos de alta gama VLIW (Very-Long Instruction Word): Lo decide el compilador o el programador Se usa, por ej., en los DSP de la serie C6x de Texas Instruments 06:51

Superescalares y VLIW flujo de instrucciones tiempo Una instrucción Otra flujo de instrucciones Se inician de a dos tiempo 06:51

Un Pipeline Superescalar Pipeline del ARM Cortex A8 (Para un ejemplo de VLIW, ver DSP de la familia C6x de TI, como el que acompaña al Cortex A8 en la BeagleBoard.) 06:51

Memorias Cache La tecnología de las memorias no experimenta tanto incremento de velocidad como la de los procesadores A frecuencias altas, la velocidad de procesamiento empieza a estar dominada por las esperas hasta que responda la memoria. Para alivianar el problema, a veces se usan memorias cache Son memorias rápidas, puestas entre la memoria principal y el procesador. Conservan un subconjunto del contenido de la memoria principal Gracias a la localidad espacial y temporal del software, con ese contenido se atiende la mayoría de los accesos que requiere el procesador. Frecuentemente, se usan varios niveles de cache Un cache de nivel 1 (L1) pequeño y bien rápido Un cache de nivel 2 (L2) más grande, aunque más lento Quizás, un L3… Las cache L1 y L2 suelen estar en el mismo chip del procesador 06:51

Memorias Cache El cache L1 generalmente está dividido en cache de instrucciones y cache de datos Así, segmentos como IF y MEM del pipeline no compiten por el acceso a memoria. Las memorias cache tienen sus contras: Complican la predicción del tiempo de ejecución Porque no se sabe si la información va a estar o no en cache. Ocupan superficie de silicio (=costo) Consumen energía Sin embargo, si la frecuencia de clock es alta, son imprescindibles para lograr buena performance. Foto del die (pastilla) del Intel Atom 06:51

ARM Cortex A8 32 bits Arquitectura RISC ISA ARM (32 bits) y Thumb-2 (16/32 bits) desde 600 MHz hasta más de 1 GHz Superescalar (2 issue) Lanzado en 2009 Pipelines de 13 etapas Caches L1: split, 16KB o 32 KB c/u Cache L2: 64 KB a 2 MB 2 DMIPS/MHz Extensión para multimedia: NEON Por unos u$s 50 se compra un TI OMAP 3515 (= Cortex A8 a 600 MHz + un DSP) 06:51

Intel Atom Z530 32 bits ISA x86 (PC compatible) pero con núcleo RISC 1,6 GHz Superescalar (2 issue) Lanzado en 2008 Pipelines de 16 etapas Caches L1: split, 32 KB (I) + 24 KB (D) Cache L2: 512 KB Extensión para multimedia: SSE3 Máx TDP (thermal design power): 2 W Vcore = 1,1 V 2 DMIPS/MHz Fabricado con un proceso de 45 nm Cuesta aprox. u$s 50 06:51

ARM Cortex A9 06:51

06:51

Almacenamiento de las “Páginas” de la Memoria Virtual Memoria Virtual y MMU Con sistemas operativos (tipo Linux) se pueden correr varios procesos “simultáneamente”. El mapeo lo hace una combinación de HW y SW Al bloque de HW que se ocupa de eso se le dice Unidad de Administración de Memoria (MMU) La memoria virtual tiene contras similares a las cache Memoria Virtual Memoria Física Memoria del Proceso A Almacenamiento de las “Páginas” de la Memoria Virtual mapeo …del B …del C 06:51

Temas de esta Clase Medición de performance Arquitecturas de gama alta Dhrystone MIPS y mejores benchmarks Arquitecturas de gama alta Superescalares, VLIW, memorias caches y MMU ¿Preguntas? ¿Comentarios? ¿Etc.? ¡Gracias! 06:51