Documentos de Académico
Documentos de Profesional
Documentos de Cultura
UDC MICROPROGRAMADAS
Al principio eran cableadas
Después, microprogramadas
● Cables reemplazados por circuitos de 1 y 0 para conectar o desconectar
● 1 y 0 almacenados en la UDC
● Cada instrucción es un conjunto de micro-instrucciones llamado micro-programa.
● Cada micro-instrucción ocupa un ciclo de CLK
Hoy se separan comandos de operandos (ejecutar instrucciones en paralelo)
CICLO DE INSTRUCCIÓN
IFIDOFEX
● IF: instruction Fetch / Búsqueda del código de operación (alojado en reg de instr.)
● ID: Instruction Decode / Decodificación del código de operación
● OF: Operand Fetch / Búsqueda de operandos
● EX: Execution / Ejecución
EL CONTADOR DE PROGRAMA
Registro interno del CPU
Apunta a la posición de MP de la próxima instrucción a ejecutar
Operado por la UDC
Comportamientos
● Normal: incrementa en 1 el valor para leer las posiciones
● Salto: cambio de posición en la MP (no es la próxima).
● Indirección: cambio de dirección, accede al contenido y vuelve a normal
SET DE INSTRUCCIONES (del procesador)
● Transferencia de datos
● Transferencia de programa
● Manipulación de bits
● Manipulación de cadenas
● Aritméticas
● Control de procesador
CAPACIDAD DE DIRECCIONAMIENTO
Cuántas direcciones (en binario) es capaz de generar para:
● Acceder a la MP
● Acceder a la MV
● Acceder a los puertos de e/s
Capacidad de direccionamiento 2 a la n bits
La cantidad de bits de cada dirección dada por la cantidad de pines que tenga el
microprocesador en el bus de direcciones
Ambos procesadores son de 20 bits
Acceso a los periféricos usan los primeros 16bits
Modos de direccionamiento
Acceso a las posiciones de memoria y puertos de e/s a través de direcciones binarias
En ambos procesadores los registros son todos de 16bits
Paralelismo
Técnica para reducción de tiempos y costos de recursos → Mejorar la performance
● Paralelismo temporal: Solapar tiempos en un mismo dispositivo
● Paralelismo espacial: Agregar más dispositivos para trabajar al mismo tiempo
Taxonomía de Flynn
Clasificación de arquitecturas según la cantidad de unidades funcionales que se usan en
paralelo y la forma en que se interconectan
● SISD -> Paradigmas de Von Neuman y Harvard -> Nuestros procesadores
● SIMD -> Procesadores vectoriales
● MISD -> Sistema aeronavegación
● MIMD -> Multiprocesadores
SISD = única instrucción ejecuta un único conjunto de datos almacenado en una única
memoria
SIMD = única instrucción controlará la ejecución simultánea de un conjunto de datos
diferente en cada unidad de ejecución
MISD = ejecutan un conjunto diferente de instrucciones en distintas con un mismo
conjunto de datos
MIMD = Se ejecutan un conjunto diferente de instrucciones en con distintos conjuntos de
datos
Multiprocesadores Simétricos (SMP)
Todos los procesadores (2 o más):
● Son independientes entre sí
● Son de similares características
● Comparten el mismo espacio de memoria y de Entrada/Salida
● Poseen similares tiempos de acceso a la misma MP
● Pueden ejecutar los mismos algoritmos o funciones
● Son controlados por un único Sistema Operativo integrado
Multicores
Es transparente para el usuario
Brinda un incremento sensible en la performance
Clusters
VS SMP
Conjunto de computadores que trabajan como si fueran una sola mega-computadora
Cada computadora puede funcionar por sí sola como un ordenador con todas las
funciones
Nodo → Cada computador del clúster
Se enlazan o comunican a través de una red: De Área Local (LAN – Local Area Network)
y De Área Ampliada (WAN – Wide Area Network).
Poseen discos compartidas por todos los computadores con configuración redundante de
discos (RAID – Redundant Array of Inexpensive Disks)
Pipelines
Segmentación en etapas de una tarea compleja. Cada una realiza una única tarea, pero
de manera muy eficiente
La Unidad de Control ejecuta el ciclo de instrucción en etapas.
Unidad de control no segmentada
● Se procesa una instrucción hasta que termine; mientras no se iniciará con la
siguiente
Unidad de control segmentada:
● Ocupo todas las etapas con porciones de diferentes instrucciones
● Puedo implementar un Pipeline de instrucciones
Arquitecturas multi-núcleo
Un solo chip o procesador que tiene 2 o más núcleos
Entre los diferentes núcleos no se repiten todas las unidades estructurales:
Un solo caché interna L3
Un solo bus externo de direcciones, de datos y de control.
Paralelización en cada núcleo (Pipelineing) y entre todos los núcleos (procesamiento
paralelo o SMP)
Arquitecturas multi-procesador
Conocida como procesamiento distribuido como hemos visto en la taxonomía de Flynn
denominada MIMD
Cada procesador es un computador en sí mismo, completo, pero en su conjunto
enlazados a través de una red de datos
Clusters
Arquitecturas reconfigurables
Solución informática entre el hardware puro y el software
Los dispositivos poseen varios bloques funcionales llamados bloques lógicos que se
podrán conectar mediante interconexiones programables
FPGA (Field-Programable Gate Array)
Las interconexiones se ralizan mediante un lenguaje de descripción de hardware como
puede ser el VHDL (VHSIC Hardare Description Languaje) en donde VHSIC es Very High-
Speed Integrated Circuit
Diseñado por la IEEE
Xilinx es fabricante de FPGAs
Poseen módulos simples (operaciones AND, XOR, NOT) hasta funciones
combinacionales
Poseen flip-flops aislados y completos bloques de memoria
Permiten configuraciones de funciones que no existen en un chip comercial
Poseen UCPs, Memoria RAM, Memoria Caché, ADM (Acceso Directo a Memoria por
parte de los periféricos), Gestión de interrupciones y Temporizadores, Motor de
procesamiento SIMD, Puerto Ethernet 802.3, USB, Puertos de E/S de propósito general,
etc.
Usadas inicialmente en telecomunicaciones y redes de datos y luego en la industria
automotriz y de aplicaciones industriales
La arquitectura HPRC (High-Performance Reconfigurable Computing) combina unidades
FPGA con CPUs multi-núcleo (para la implementación de algoritmos muy complejos)
BUSES
SEÑALES
Variación de una magnitud física a lo largo del tiempo
Pueden ser:
● Tensión eléctrica en Volts [V]
● Corriente eléctrica en Amperes [A]
● Potencia eléctrica en Watts [W]
Señales
● Continuas
● Alternas
● Periódicas: El juego o conjunto de valores se repite en intervalos de tiempo
constante, llamados Períodos; es decir, en un período tenemos todos los valores
que toma la señal y estos se repetirán un período detrás de otro
● Digitales: Pueden tomar un conjunto de valores discretos o limitados
● Analógicas: Pueden tomar infinitos valores
EL CLOCK
El procesador realiza todas sus operaciones en sincronismo con una señal llamada de
reloj o clock
Esta señal es digital rectangular
● Frecuencia f: cantidad de ciclos completos por segundo. Medida en Hertz [Hz]
● Velocidad del procesador: Frecuencia de su clock medida en Gigahertz [GHz] =
1000 millones de Hertz
BUSES
Medio de transporte de señales digitales formado por cables de cobre o pistas de cobre
en una plaqueta (llamada circuito impreso)
Conectan dos o más dispositivos (ej. impresora al pc)
Interconexión de bus
● Se conectan dos o más dispositivos
● Todos los dispositivos reciben la misma información del bus
● Uno a la vez puede transmitir información con éxito
● Está compuesto por múltiples líneas de comunicación
● Está regido por normas o reglas de conexión
CICLO DE UN BUS
Llamaremos ciclo de bus a la operación básica del bus en que se realiza una
transferencia elemental completa de información entre dos dispositivos conectados al bus
● Bus de ciclo completo: La transferencia de información se hace sin interrupciones
● Bus de ciclo partido: El tiempo del bus se divide en pequeños períodos (time slots)
en donde se manda parte de los datos en cada uno de ellos
PARALELISMO, SINCRONIZACIÓN
Paralelismo y Ancho
● Bus paralelo = Se trasmiten más de un dato al mismo tiempo
● Ancho = cantidad de líneas o bits que se transmitan en paralelo (4, 8, 16, etc.)
Sincronización
● Bus sincrónico: Hay una única señal de reloj que regula la transmisión de
información
● Bus asincrónico: Los dispositivos no se guían por una señal de reloj
VELOCIDAD
Bits por segundo (Bps)
● Tiempo que tarda un bit en transmitirse
● Directamente ligada a la velocidad del reloj del bus
Baudio
● Tiempo que tarda en transmitirse una unidad de información
Velocidad del medio = 9600 bps (línea de cobre)
Tiempo en que se trasmite 1 bit = 1/9600 = 104,1 μs
Si la unidad de información es 1 byte → 8 bits = 104,1 x 8 = 833,3 μs
BUSES MULTIPLEXADOS
Por un mismo conjunto de cables se transmiten datos distintos compartiendo el mismo
medio
En un momento el bus transporta el conjunto de datos “A” y en otro conjunto “B” de
distinta especie
8086/8088 = el bus de datos y direcciones comparten los mismos pines o cables
● AD0 a AD15 son Address/Datos
● ALE (Address Latch Enable) se identifica cuándo están las Direcciones o los Datos
VELOCIDAD
Temporización
● Cronograma temporal de un ciclo completo del bus para todas sus operaciones
(lectura, escritura, etc.)
Niveles de especificación
● Nivel mecánico: tipo y cantidad de cables, tipo de conectores, etc.
● Nivel eléctrico: circuito eléctrico equivalente, niveles de tensiones utilizadas, etc.
● Nivel lógico: define la equivalencia lógica de los valores eléctricos como ser 0 Volt
= “0” lógico y +5 Volts = “1” lógico (lógica positiva)
JERARQUÍA DE BUSES
En un computador los periféricos se deben conectar con los buses o “Sistema de
Interconexión” (bus de Datos, de Control y de Direcciones)
Diferentes dispositivos utilizan distintos esquemas de conexión de bus y todos tienen que
poder interconectarse entre sí gracias a un sistema jerárquico de ordenamiento de
conexión
INTERFAZ DE ENTRADA/SALIDA
Es el intercambio de información entre la CPU y los dispositivos externos también
llamados Periféricos
Un módulo de E/S se encargará de ser la interfaz entre los buses del sistema
(Direcciones, Datos, Control) y los dispositivos periféricos como ser teclado, ratón, placa
de vídeo, placa de red, impresoras, monitores, discos rígidos, etc.
FUNCION
Control y temporización
◼ Coordinando el tráfico de datos entre los recursos internos y los dispositivos
periféricos
ESTRUCTURA
PUERTOS
Existen una serie de registros que se direccionan desde la UCP para leerlos o escribirlos
según se requiera. A cada uno de estos registros se los denomina Puertos de E/S
◼ Permiten el intercambio de información entre los buses (conectados a la CPU y a la
Memoria Principal) y el módulo de E/S (que a su vez están conectados a los dispositivos
periféricos)
Una vez elegido un dispositivo, la UCP hará las lecturas/escrituras en los puertos de la
interfaz
Una vez terminada la operación de E/S, la UCP continuará con su programa principal
Nótese que la UCP no puede estar haciendo otra cosa mientras espera que el periférico
esté listo y no haya errores posteriores durante la escritura
Supongamos que una impresora se queda sin hojas, hasta que la UCP no lea el puerto de
estados de la impresora, no mostrará un mensaje en pantalla avisando esta situación
Para soportar esta modalidad se utiliza un chip del chipset (conjunto de circuitos
integrados diseñados en base en la arquitectura de un procesador que sirven de puente
de comunicación con el resto de componentes de la placa madre como la Memoria
Principal, las placas, las interfaces como la USB, ratón, teclado, etc.) denominado Intel
i8255 (Programmable Peripheral Interface - PPI)
Este método hace uso más eficiente del tiempo de UCP ya que si ningún periférico
requiere atención, la UCP nunca los interrogará (correrá el software que lo haga)
La atención priorizada de interrupciones será soportada por otro chip del chipset
denominado Intel 82C59A (Programable Interrupt Controller – PIC)
Tal como vimos en el módulo anterior, la UCP podrá conceder los buses al controlador de
DMA (DMAC) y éste gestionará las transferencias Memoria-E/S o Memoria-Memoria sin
intervención de la CPU haciendo el sistema muchísimo más eficiente
DESVENTAJA
● No permiten transferencias simultáneas UCP-MP y UCP-E/S. No permite la
implementación de Acceso Directo a Memoria (ADM) por parte de los periféricos.
Para poder gestionar 2 espacios de direcciones separados, la UCP tiene un pin más
llamado IO/!M. Si esta señal de salida está en “0” indica que la UCP desea acceder a la
MP y que la dirección que está en sus pines A0 a A19 (20 bits) refiere a una
posición en memoria RAM
En cambio si desea direccionar un módulo de E/S, la señal IO/!M será colocada en “1”
indicando que en los pines A0 a A15 (16 bits) se presenta una dirección de un puerto de
E/S.