Arquitectura de Computadoras
Contenidos 1 Introducción Computadora Arquitectura Partes de una arquitectura 2 Componentes Básicos CPU Jerarquía de Memoria 3 Concurrencia y Paralelismo Arquitecturas concurrentes Arquitecturas Distribuidas Memoria compartida y Memoria distribuida 4 Ejemplos Ejemplos de arquitecturas Centralizadas Ejemplos de Arquitecturas Distribuidas 5 Síntesis Definiciones Componentes básicos Concurrencia y paralelismo 6 Lecturas Recomendadas Conceptos básicos Temas avanzados
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
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
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
Componentes Básicos.
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.
CPU Ciclo del CPU: 1 Fetch: Recuperar instrucción 2 Decode: Identificar instrucción 3 Execute: Coordinar la ejecución 4 Return: Regresar a (1) Diagrama de ejecución de procesador MIPS. Pipeline MIPS, Licencia de dominio público.
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
Jerarquía de memoria Almacenamientos Primarios 1 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 cba
Concurrencia y Paralelismo.
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é.
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.
Multiprocesamiento Simétrico - SMP Acceso Uniforme a Memoria (UMA) Caché compartida No requiere sincronización. Acceso No Uniforme a Memoria (NUMA) Caché independiente Escritura debe sincronizarse CNCA cba CNCA cba
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 cba
Ejemplos de Arquitecturas.
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.
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.
Dispositivos Móviles Smartphones por Phillip Wilson cbd Imágenes en dispositivos móviles - Tablets por RaHuL Rodriguez cba
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.
Computadoras Portátiles (NetBooks) HP 2133 Mini-Note PC (side) por VIA Gallery cb
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.
Estaciones de Trabajo Laptop - Anónimo z Desktop por EroticDesktops cba
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.
Servidor Dell Power Edge Servers - Anónimo p Server - Anónimo z
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.
Cluster Titan render - OakRidge p US NASA Columbia por Nuno Tavares p
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.
Malla Sistema grid p
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
Enjambre Network por gr8effect z
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.
Introduccio n Componentes Ba sicos Concurrencia y Paralelismo Ejemplos Nube Cloud Computing Sı ntesis Lecturas Recomendadas
Síntesis.
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
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 Caché L1 y L2 (Memoria de trabajo) 2 Memoria RAM 2 Almacenamiento secundario (Persistente): Disco Duro CDs Flash etc...
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.
Arquitectura de computadoras Arquitectura de computadoras por M. Morris Mano. Arquitectura de computadoras en Wikipedia. MIPS y RISC en Wikipedia.
Enlaces a temas específicos en Wikipedia SMP AMP UMA NUMA