Arquitectura de Computadoras

Anuncio
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
Descargar