Introducción Componentes Básicos Concurrencia y Paralelismo Ejemplos Arquitectura de Computadoras Sı́ntesis Lecturas Recomendadas Introducción Componentes Básicos Concurrencia y Paralelismo Ejemplos Sı́ntesis Contenidos 1 2 3 Introducción Computadora Arquitectura Partes de una arquitectura Componentes Básicos CPU Jerarquı́a de Memoria Concurrencia y Paralelismo Arquitecturas concurrentes Arquitecturas Distribuidas Memoria compartida y Memoria distribuida 4 5 6 Ejemplos Ejemplos de arquitecturas Centralizadas Ejemplos de Arquitecturas Distribuidas Sı́ntesis Definiciones Componentes básicos Concurrencia y paralelismo Lecturas Recomendadas Conceptos básicos Temas avanzados Lecturas Recomendadas Introducción Componentes Básicos Concurrencia y Paralelismo Ejemplos Sı́ntesis Lecturas Recomendadas Computadora Una computadora puede definirse como una máquina de estados que acepta entradas, las procesa utilizando una colección finita y definida de instrucciones y genera un resultado según las entradas especificadas. ”Turing Machine”, Licencia de dominio público Introducción Componentes Básicos Concurrencia y Paralelismo Ejemplos Sı́ntesis Lecturas Recomendadas Arquitectura La arquitectura de una computadora es el modelo conceptual que describe las caracterı́sticas de una computadora, las instrucciones que puede ejecutar y la forma en que se ejecutan. Existe una familia de arquitecturas denominada RISC (Reduced Instruction Set Computer ) que define un estándar en la forma en que se representan las instrucciones: Tamaño estándar para todas las instrucciones Almacenamiento y recuperación de datos sólo a través de instrucciones dedicadas Menos instrucciones más simples, operaciones más complejas se alcanzan por composición Introducción Componentes Básicos Concurrencia y Paralelismo Ejemplos Sı́ntesis Lecturas Recomendadas Partes de una arquitectura En la actualidad toda computadora cuenta con dos componentes principales: Unidad Central de Procesamiento o CPU Jerarquı́a de Memoria Adicionalmente puede tener componentes adicionales que se encarguen de tareas especializadas, por ejemplo: Procesamiento gráfico Gestión y sincronización de audio Control de almacenamientos especializados Comunicación con dispositivos externos Entre otros Introducción Componentes Básicos Concurrencia y Paralelismo Componentes Básicos. Ejemplos Sı́ntesis Lecturas Recomendadas Introducción Componentes Básicos Concurrencia y Paralelismo Ejemplos Sı́ntesis Lecturas Recomendadas CPU La Unidad Central de Procesamiento tiene a su vez 3 componentes principales: Control de Instrucciones (CI): Tiene programadas, por medio de circuitos digitales, todas las instrucciones básicas que puede ejecutar la computadora. Unidad Aritmético-Lógica (ALU): Se encarga de ejecutar instrucciones especiales aritméticas que son muy complejas para el conjunto de instrucciones del CI Registros: El CI está conectado a una estructura de almacenamiento organizada en Registros, cada registro puede almacenar una instrucción o un dato de máximo (según la tecnologı́a actual) 64 bits de tamaño. Introducción Componentes Básicos Concurrencia y Paralelismo Ejemplos Sı́ntesis Lecturas Recomendadas CPU Diagrama de ejecución de procesador MIPS. Ciclo del CPU: 1 2 3 4 Fetch: Recuperar instrucción Decode: Identificar instrucción Execute: Coordinar la ejecución Return: Regresar a (1) Pipeline MIPS, Licencia de dominio público. Introducción Componentes Básicos Concurrencia y Paralelismo Ejemplos Sı́ntesis Lecturas Recomendadas CPU El CI puede ejecutar hasta cuatro* instrucciones a la vez, cada una en etapas distintas del ciclo de procesamiento. El reloj interno del CI marca un ciclo cada vez que se termina la etapa más lenta y permite al ciclo de procesamiento avanzar. Las instrucciones de ALU son más lentas y por lo general requieren más de un ciclo para ejecutarse. La velocidad de una CPU se mide en cantidad de ciclos de reloj por segundo, esta frecuencia se representa en Hertz (Hz, MHz, GHz). Vista inferior del Pentium IV por Eric Gaba. cba Introducción Componentes Básicos Concurrencia y Paralelismo Ejemplos Sı́ntesis Jerarquı́a de memoria 1 Almacenamientos Primarios Registros: Directo al CPU 2 Caché L1: Memoria de trabajo 3 Caché L2: Memoria de trabajo 4 RAM: Memoria Principal Almacenamientos Secundarios 5 Medios Magnéticos Medios Ópticos Medios Semiconductores CNCA cb a Lecturas Recomendadas Introducción Componentes Básicos Concurrencia y Paralelismo Ejemplos Concurrencia y Paralelismo. Sı́ntesis Lecturas Recomendadas Introducción Componentes Básicos Concurrencia y Paralelismo Ejemplos Sı́ntesis Lecturas Recomendadas Concurrencia y Paralelismo Un procesador con un único CI puede recuperar (Fetch) solo una instrucción por cada ciclo de reloj. Si se define un proceso como un conjunto finito de instrucciones secuenciales, este procesador puede correr sólo un proceso a la vez. Existen dos estrategias, no excluyentes entre sı́, para que un procesador pueda ejecutar múltiples procesos a la vez: Arquitectura Multihilo Un mismo CI puede correr varios procesos alternando las instrucciones que los componen. Arquitectura Multinúcleo Un mismo procesador puede tener múltiples CI, cada uno con sus propios ALU, Registros y parte de la Caché. Introducción Componentes Básicos Concurrencia y Paralelismo Ejemplos Sı́ntesis Lecturas Recomendadas Arquitecturas Distribuidas Las arquitecturas multinúcleo y multihilo permiten ejecutar múltiples instrucciones utilizando una misma jerarquı́a de memoria. Al trabajar con un procesador multinúcleo, la cantidad de procesos paralelos que se pueden ejecutar está limitada por las especificaciones de la CPU. En la actualidad la mayorı́a de computadoras personales y servidores utilizan este tipo de arquitectura. Existen arquitecturas que permiten conectar múltiples CPUs, aumentando la cantidad de procesos paralelos según las necesidades del usuario. Introducción Componentes Básicos Concurrencia y Paralelismo Ejemplos Sı́ntesis Multiprocesamiento Simétrico - SMP Acceso Uniforme a Memoria (UMA) Acceso No Uniforme a Memoria (NUMA) Caché compartida Caché independiente No requiere sincronización. Escritura debe sincronizarse CNCA cba CNCA cba Lecturas Recomendadas Introducción Componentes Básicos Concurrencia y Paralelismo Ejemplos Sı́ntesis Multiprocesamiento Asimétrico - AMP Espacio de direcciones distribuido Lectura de memoria remota requiere comunicación (e.j. red) Sólo puede ser NUMA Escalable CNCA c ba Lecturas Recomendadas Introducción Componentes Básicos Concurrencia y Paralelismo Ejemplos Ejemplos de Arquitecturas. Sı́ntesis Lecturas Recomendadas Introducción Componentes Básicos Concurrencia y Paralelismo Ejemplos Sı́ntesis Lecturas Recomendadas Ejemplos de arquitecturas En la actualidad existen varios ejemplos prácticos de casi todas las arquitecturas expuestas. A continuación se enumeran algunos partiendo de los más básico hasta lo más complejo. Introducción Componentes Básicos Concurrencia y Paralelismo Ejemplos Sı́ntesis Dispositivos Móviles Mononúcleo-Monohilo. La memoria principal y el almacenamiento secundario son compartidos. Puede extenderse el almacenamiento secundario con unidades flash. Rendimiento muy bajo. Requieren espacio mı́nimo, de bolsillo. Muy bajo costo. Lecturas Recomendadas Introducción Componentes Básicos Concurrencia y Paralelismo Ejemplos Sı́ntesis Dispositivos Móviles Smartphones por Phillip Wilson cbd Imágenes en dispositivos móviles - Tablets por RaHuL Rodriguez c ba Lecturas Recomendadas Introducción Componentes Básicos Concurrencia y Paralelismo Ejemplos Computadoras Portátiles (NetBooks) Mononúcleo-Multihilo. La memoria principal es escalable. El almacenamiento secundario es disco duro. Rendimiento bajo. Requieren muy poco espacio. Muy bajo costo. Sı́ntesis Lecturas Recomendadas Introducción Componentes Básicos Concurrencia y Paralelismo Ejemplos Computadoras Portátiles (NetBooks) HP 2133 Mini-Note PC (side) por VIA Gallery cb Sı́ntesis Lecturas Recomendadas Introducción Componentes Básicos Concurrencia y Paralelismo Ejemplos Sı́ntesis Lecturas Recomendadas Computadoras de escritorio / Estaciones de Trabajo Multinúcleo-Multihilo. SMP. La memoria principal y el almacenamiento secundario son escalables. Tienen rendimiento medio. Requieren más espacio para albergar los componentes, intercambian escalabilidad por portabilidad. Dada la escalabilidad, pueden ser de bajo a mediano costo. Introducción Componentes Básicos Concurrencia y Paralelismo Ejemplos Sı́ntesis Estaciones de Trabajo Laptop - Anónimo z Desktop por EroticDesktops cba Lecturas Recomendadas Introducción Componentes Básicos Concurrencia y Paralelismo Ejemplos Sı́ntesis Lecturas Recomendadas Servidor Multinúcleo-Multihilo SMP y AMP Equipos de procesamiento intensivo, atienden múltiples solicitudes al mismo tiempo. Requieren mucha memoria principal y mucho almacenamiento secundario para procesar todas las tareas requeridas. Mediano consumo de energı́a, y soporte de corriente ininterrumpido. Tienen rendimiento medio, similar a las estaciones de trabajo, pero con mayores capacidades de red. Mediano costo. Introducción Componentes Básicos Concurrencia y Paralelismo Ejemplos Sı́ntesis Servidor Dell Power Edge Servers - Anónimo p Server - Anónimo z Lecturas Recomendadas Introducción Componentes Básicos Concurrencia y Paralelismo Ejemplos Sı́ntesis Lecturas Recomendadas Cluster Equipos distribuidos de procesamiento intensivo. Compuesto de varios servidores que trabajan en conjunto para resolver una tarea. Sistemas hı́bridos AMP-SMP Altamente escalables. Su administración es compleja y requiere conocimientos técnicos avanzados. Alto consumo de energı́a, son múltiples equipos con corriente ininterrumpida. Alto costo. Alto rendimiento. Requieren mucho espacio. Introducción Componentes Básicos Concurrencia y Paralelismo Ejemplos Sı́ntesis Cluster Titan render - OakRidge p US NASA Columbia por Nuno Tavares p Lecturas Recomendadas Introducción Componentes Básicos Concurrencia y Paralelismo Ejemplos Sı́ntesis Lecturas Recomendadas Malla Sistemas distribuidos de amplio propósito. Se comportan como un cluster, pero su composición es más heterogénea. Muy alto consumo de energı́a. Alto costo. Alto rendimiento. Su administración es muy compleja ya que requiere mucha mediación y control de contingencias. Requieren mucho espacio. Por su naturaleza distribuida, en una malla tı́picamente se distribuyen los costos, el consumo de energı́a y el espacio requerido entre varias entidades. Más que escalables, una malla suele ser dinámica, debe permitir agregar o separar nodos del sistema. Introducción Componentes Básicos Concurrencia y Paralelismo Ejemplos Malla Sistema grid p Sı́ntesis Lecturas Recomendadas Introducción Componentes Básicos Concurrencia y Paralelismo Ejemplos Sı́ntesis Lecturas Recomendadas Enjambre Sistemas distribuidos de bajo costo. Utilizan múltiples equipos heterogéneos, no dedicados, de múltiples clientes voluntarios. Los equipos están comunicados por medio red. El rendimiento depende de la disponibilidad de recursos de sus nodos, al no ser equipos dedicados no pueden suministrar el total de la capacidad al sistema. Su administración debe tolerar muchas contingencias y la calendarización de trabajos es más compleja que en los modelos anteriores. Altamente dinámicos. Ejemplo: SETI@HOME Introducción Componentes Básicos Concurrencia y Paralelismo Ejemplos Enjambre Network por gr8effect z Sı́ntesis Lecturas Recomendadas Introducción Componentes Básicos Concurrencia y Paralelismo Ejemplos Sı́ntesis Lecturas Recomendadas Nube Sistemas distribuidos de uso distribuido. Los modelos anteriores ponen a disposición múltiples recursos para un sólo usuario, la nube conecta múltiples recursos a múltiples usuarios de forma transparente. El usuario desconoce las caracterı́sticas del sistema, el sistema cuenta con plataformas de mediación que se encargan de brindar los recursos al usuario sin importar las condiciones del equipo. Son fáciles de escalar, requieren mucho mantenimiento. Muy alto costo, consumo energético y espacio. Ejemplos: Office 365, Dropbox, Google Drive. Introducción Componentes Básicos Concurrencia y Paralelismo Ejemplos Nube Cloud Computing © Sı́ntesis Lecturas Recomendadas Introducción Componentes Básicos Sı́ntesis. Concurrencia y Paralelismo Ejemplos Sı́ntesis Lecturas Recomendadas Introducción Componentes Básicos Concurrencia y Paralelismo Ejemplos Definiciones Computadora: Máquina de estados Procesa datos a través de instrucciones Instrucciones son finitas y predefinidas Arquitectura: Modelo conceptual Define las instrucciones Caracterización de las capacidades de una computadora Sı́ntesis Lecturas Recomendadas Introducción Componentes Básicos Concurrencia y Paralelismo Ejemplos Componentes básicos Unidad de Procesamiento Central: CI: Ejecuta instrucciones básicas ALU: Ejecuta operaciones aritméticas más complejas Registros: Único acceso a datos desde el CI. Jerarquı́a de Memoria: 1 Almacenamiento Primario (Transiente): 1 2 2 Caché L1 y L2 (Memoria de trabajo) Memoria RAM Almacenamiento secundario (Persistente): Disco Duro CDs Flash etc... Sı́ntesis Lecturas Recomendadas Introducción Componentes Básicos Concurrencia y Paralelismo Ejemplos Sı́ntesis Concurrencia y paralelismo Multihilo: Varios procesos, un CI Multinúcleo: Varios CI, una jerarquı́a de memoria Distribuido: Varios CPU, varias jerarquı́as de memoria UMA: Acceso coordinado a memoria, no requiere sincronización NUMA: Acceso independiente a memoria, pueden ocurrir inconsistencias SMP: CPUs idénticas, fácilmente intercambiables AMP: CPUs asimétricas, es posible escalar Lecturas Recomendadas Introducción Componentes Básicos Concurrencia y Paralelismo Ejemplos Lecturas Recomendadas. Sı́ntesis Lecturas Recomendadas Introducción Componentes Básicos Concurrencia y Paralelismo Arquitectura de computadoras Arquitectura de computadoras por M. Morris Mano. Arquitectura de computadoras en Wikipedia. MIPS y RISC en Wikipedia. Ejemplos Sı́ntesis Lecturas Recomendadas Introducción Componentes Básicos Concurrencia y Paralelismo Ejemplos Enlaces a temas especı́ficos en Wikipedia SMP AMP UMA NUMA Sı́ntesis Lecturas Recomendadas