Está en la página 1de 13

UNIDAD DE CONTROL (UDC)

Coordina y orquesta todas las tareas para la ejecución de instrucciones.


Genera señales eléctricas internas para conectar y desconectar las diferentes unidades
estructurales internas de la UDC y las señales eléctricas externas (señales de lectura,
escritura, etc)

● Lógica secuencial
● Unidad de control de registros y decodificadores
● Memoria de control

UDC MICROPROGRAMADAS

Inicialmente eran cableadas (con un cable externo) para la ejecución de cada instrucción

Después, microprogramadas
Cables reemplazados por circuitos (1 y 0 para conectar o desconectar. Almacenados en la
UDC)
Cada instrucción conlleva un conjunto de micro-instrucciones llamado micro-programa.
Cada micro-instruccion ocupa un ciclo de CLK

Hoy en día, se separan comandos de operandos ( poder ejecutar instrucciones en paralelo)

CICLO DE INSTRUCCIÓN

Se ejecutan instrucciones siguiendo un ciclo repetitivo llamado ciclo de instrucción

● IF: instruction Fetch / Búsqueda del código de operación


● ID: Instruction Decode / Decodificación del código de operación
● OF: Operand Fetch / Busq 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 de forma autónoma por la UDC.

Tiene diferentes comportamientos:


● Normal : incrementa en 1 el valor para leer las posiciones
● Salto: cambio de posición en la MP (no es la próxima). Se carga en el contador del
programa
● Indirección: dirección de memoria donde reside el dato. El contador del programa
carga la dirección indicada y accede a su contenido. Luego vuelve a normal
ETAPAS DEL CICLO DE INSTRUCCIÓN

Instruction Fetch
UDC accede a la MP, a la dirección donde apunta el PC y lee el COP.
El COP viene por el bus de datos y es alojado en el Instruction Register

Instruction Decode
El IR es decodificado y entrega la posición de la Memoria de Control en donde se encuentra
la primera micro-instrucción a ejecutar.
Posteriormente, por sí sola, la UDC recorre todas las micro instrucciones del micro
programa

Operand Fetch
Si el micro programa requiere operandos, la UDC leerá los operandos de la MP. Estos datos
vienen por el bus de datos y serán alojados dentro de la UCP en registros temporales,
auxiliares, o en los registros de destino.

Execute
Se realiza el procesamiento de los datos requeridos (suma, resta, etc)
Finalizada esta etapa, se coloca el contador del programa en la dirección de la próxima
instrucción a ejecutar para reiniciar el ciclo.

SET DE INSTRUCCIONES

Conjunto de instrucciones posibles qué posee un procesador


Se define en tipo de instrucción:

● Transferencia de datos (14) movimiento de datos entre registros y/o memoria


● Aritméticas (20) operaciones aritméticas
● Manipulación de bits (10): operaciones lógicas
● Manipulación de cadenas (5) movimiento, búsqueda, y comparación de datos de
cadena
● Transferencia de programa (29) saltos, llamadas
● Control de procesador (11) detención, depuración, interrupciones

LONGITUD DE PALABRA DE UN PROCESADOR

Conjunto de bits qué son la unidad de medida a ser almacenada, procesada o transmitida
por el procesador

De Longitud múltiplo de 2 u 8

Múltiplos de palabra:
● Palabra doble
● palabra cuádruple
CAPACIDAD DE DIRECCIONAMIENTO

Indica cuántas direcciones es capaz de generar para:


● Acceder a la MP
● Acceder a los puertos e/s
● Acceder a la MV

Capacidad de direccionamiento para “n” bits es 2 a la n

Cantidad de bits de cada dirección está dada por la cantidad de pines del microprocesador
en el bus de direcciones

20 bits para nuestro procesador

Acceso a periféricos solo los primeros 16 bits

MODOS DE DIRECCIONAMIENTO

A través de direcciones binarias el procesador accede a las posiciones de memoria y


puertos de e/s
Varios métodos de direccionar una de esas posiciones:

● Implícito: No hay un operando en la operación. Lo contiene en CDO (código de


operación)
CLC (clear carry Flag)

● Inmediato: El operando está presenté en la instrucción


ADD, AC, 5h

● Directo: El campo de direcciones contiene la dirección del operando


ADD, AC, 100h

● Indirecto: El campo de direcciones contiene la dirección que contiene la dirección del


operando

● Indirecto con Registro: El campo de direcciones contiene el registro qué contiene la


dirección del operando
ADD, AX, BX

● Con desplazamiento (relativo a la base o basado): El campo de direcciones contiene


el registro cuyo dato sumado a una constante determina la dirección del operando
ADD, AX, BP+100h

● Con desplazamiento (basado e indexado): El campo de direcciones contiene el


registro cuyo dato más el contenido del índice más una constante determina la
dirección del operando
ADD, AX, BP+SI+100h
PARALELISMO

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 que trabajen al mismo tiempo

TAXONOMÍA DE FLYNN

Categorizadas según la cantidad de unidades funcionales que se utilizan en paralelo y la


forma en que se interconectan:

● SISD (Single Instruction Single Data) → Paradigmas de Von Neumann y Harvard


● SIMD (Single Instruction Multiple Data)
● MISD (Multiple Instruction Single Data)
● MIMD (Multiple Instruction Multiple Data)

SISD
Único procesador ejecuta una única instrucción sobre un conjunto de datos almacenados en
una única memoria

SIMD
Única instrucción controla la ejecución simultánea de un conjunto de datos diferentes de
cada unidad de ejecución

MISD
Se ejecuta un conjunto diferente de instrucciones en distintas con un mismo conjunto de
datos

MIMD
Se ejecuta un conjunto diferente de instrucciones en distintas con distintos conjuntos de
datos

MICROPROCESADORES SIMÉTRICO (SMP)

Todos los procesadores (2 o más):

● Independientes entres sí
● Similares características
● Comparten el mismo espacio de memoria y de E/S
● Similares tiempos de acceso a la MP
● Pueden ejecutar los mismos algoritmos o funciones
● Controlados por un único SO integrado
● Multicores
● Transparente para el usuario
● Incremento 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
Cada computadora es un NODO
Se enlazan a través de una red LAN o WAN
Poseen discos compartidos por todas las computadores con RAID

ACCESO HETEROGÉNEO A MEMORIA (NUMA)

Similar a SMP
Cada procesador tiene su propio espacio de memoria
Caché L3 es usado para compartir entre todos los procesadores. L2 y L1 son propios
Al usar L3 se evita que los datos circulen por los buses
Hay coherencia de cache entre todos los niveles

PIPELINES

Realiza tarea compleja que se puede segmentar en etapas (o unidades). Cada etapa realiza
una única tarea pero de manera muy eficiente
UDC ejecuta el ciclo de instrucción en etapas:
● IF ID OF EX

Unidad de control no segmentada:


Se procesa una instrucción hasta que termine y luego pasa a la siguiente

Unidad de control segmentada:


Ocupa todas las tareas con porciones de diferentes instrucciones
Con esta puede implementar Pipelines de instrucciones

PIPELINE DE INSTRUCCIONES

Llamada “tubería de ejecución de instrucciones”


Son 4 partes de 4 instrucciones diferentes
Esta UDC tiene nivel de paralelización de 4

Procedimiento
◼ Leer varias instrucciones desde la MP y guardarlas dentro del Pipeline en la UDC
◼ Identificar COP y los OBJETOS de cada una de las instrucciones
◼ Para cada COP accederá a su microprograma y obtendrá la ocupación de cada etapa
◼ Acomodará la ocupación de la UDC entre varias instrucción evitando colisiones
◼ Una unidad de despacho enviará cada parte de cada instrucción a cada etapa
◼ Todo esto se hace para la totalidad de las instrucciones cargadas en el pipeline
PROBLEMAS DE LOS PIPELINES

De datos:
Si dos instrucciones están fuera de orden, los resultados son erróneos
Solución -> Forwarding. No se paraleliza pero se respeta el orden.

De control:
Un salto condicionado puede dar un resultado inesperado
Solución -> Predicción de saltos. Determina si ocurrirá o no un salto.

De estructura:
Dos instrucciones requieren una misma unidad (Ej, ALU)
Solución -> Agregar más unidades para tener tareas en paralelo

ARQUITECTURAS CISC Y RISC

CISC = Complex Instruction Set Computing

Set de instrucciones complejo donde cada una es un conjunto de micro-tareas.


Estas micro-tareas están en la MDC (memoria de control) en la UDC

Múltiples modos de direccionamiento

Instrucciones de distinto tamaño y tardan distinto.

Registros de propósito específico

RISC = Reduced Instruction Set Computing

Set de instrucciones sencillo y con pocas instrucciones, cada una es un conjunto de micro-
tareas

Load y Store, para acceso a memoria y registros


Calculate, para ejecutar operaciones

No hay micro-programas en memoria

Mayor velocidad de ejecución y performance

Registros de propósito general

Instrucciones de igual longitud (1 ciclo de reloj)


ARQUITECTURA MULTI-NÚCLEO

Un solo chip o procesador que tiene 2 o más núcleos

Entre los núcleos no se repiten las unidades estructurales


● un solo cache interno L3
● un solo bus externo de direcciones, de datos, y de control.

Paralelización en cada núcleo (Pipelining ) y entre todos los núcleos (procesamiento


paralelo o SMP )

ARQUITECTURA MULTI-PROCESADOR

Conocida como procesamiento múltiple (MIMD)

Cada procesador es un computador en sí, completo, pero en su conjunto enlazados a través


de la red

Cluster

ARQUITECTURAS RECONFIGURABLES

Solución informática entre el hardware puro y el software

Los dispositivos poseen bloques lógicos. Se pueden conectar mediante interconexiones


programables

FPGA (Field-Programmable Gate Array)

Las interconexiones se realizan por un lenguaje de descripción de hardware (ej. VHDL)

Diseñado por la IEEE

Tiene módulos simples (and, xor, not) hasta funciones combinacionales

Tiene flip flops aislados y completos bloques de memoria

Permiten configuraciones de funciones no comerciales

HPRC (High-Performance Reconfigurable Computing) combina FPGA con CPUs multi-


núcleo
ARQUITECTURAS BASADAS EN SERVICIOS

3 enfoques de procesamiento distribuido y utilización de redes de datos:


● Arquitectura de microservicios (MSA = Micro-Services Architecture)
● Arquitectura Basadas en Servicios (SBA = Service-Based Architecture)
● Arquitectura Orientadas a Servicios (SOA = Service-Oriented Architecture)

ARQUITECTURA DE MICROSERVICIOS (MSA)

Una aplicación se puede dividir en varios servicios acoplados (microservicios)

Fácil mantenibles, reemplazados, escalables.

Pueden ser desarrollados en distintos lenguajes

Accesibles a través de API (Aplication Program Interface)

ARQUITECTURA BASADAS EN SERVICIOS (SBA)

Solución entre ambos enfoques

Concentración de muchos microservicios relacionados en uno solo

Mejora la performance

Menor complejidad al evitar manejar muchos microservicios

Los servicios pueden tener su sistema de almacenamiento o compartido a nivel de base de


datos

ARQUITECTURAS ORIENTADAS A SERVICIOS (SOA)

Encapsulan funciones de negocio completas que pueden a su vez ser un conjunto de otras
funciones de negocio que se orquestan en un solo servicio.

Tiene bus de servicio

Los servicios de las aplicaciones requerirán servicios empresariales y estos uno o varios
servicios de negocio.
BUSES

SEÑALES

Representación de variación de una magnitud física a lo largo del tiempo

Puede ser:
● Tensión en Volts
● Corriente eléctrica en Amperes
● Potencia eléctrica en Watts
● etc

Tipos de señales:
● Continuas
● Alternas: -> Periódicas:El conjunto de valores se repite en intervalos de tiempo
constante (Periodos).
● Analogicas: Pueden tomar infinitos valores
● Digitales: Pueden tomar un conjunto de valores discretos

EL CLOCK

El procesador realiza todas sus operaciones en sincronismo con una señal de Clock

Señal digital rectangular


● Frecuencia f: cantidad de ciclos completos por segundo. Medido en Hertz
● Velocidad de procesador: Frecuencia de su clock medida en Gigahertz

BUSES

Medio de transporte de señales digitales formado por cables de cobre o pistas de cobre en
una plaqueta (llamada circuito impreso)

Para conectar dos o más dispositivos


- Placa de video a la motherboard

Interconexión de bus (para que suceda)

Se tienen que conectar dos o más dispositivos

Todos los dispositivos reciben la misma información del bus

Solo un dispositivo por vez puede transmitir info con éxito

Compuesto por múltiples líneas de comunicación

Regido por normas o reglas de conexión


CICLO DE UN BUS

Cuando un bus realiza una transferencia elemental completa de información entre dos
dispositivos conectados al bus
Bus de ciclo completo: Se hace la transferencia sin interrupciones
Bus de ciclo partido: El tiempo del bus se divide en pequeños periodos (time slots) en donde
se manda parte de los datos en cada uno de ellos

PARALELISMO, SINCRONIZACIÓN

Paralelismo y Ancho
Se transmiten más de un dato al mismo tiempo (bus paralelo)
Ancho = cantidad de líneas o bits que se transmiten paralelo

Sincronización
● Bus sincrónico: Hay una señal de reloj que regula la transmision de informacion
● Bus asíncronico: Las dispositivos no se guían por una señal de reloj

VELOCIDAD

Bits por segundo (Bps)


Tiempo que tarda un bit en transmitirse
Ligado a la velocidad del reloj del bus

Baudio
Tiempo que tarda en transmitirse una unidad de información

Velocidad del medio = 9600 bps


Tiempo en que se transmite 1 bit = 104,1 us

BUSES MULTIPLEXADOS

Por un mismo conjunto de cables se transmiten datos distintos, comparten el mismo medio
En un momento el bus transporta el conjunto de datos A y en otro el conjunto B

CAPACIDAD, APLICACION, FUNCION, SOPORTE

● Capacidad de conexión: Máximo número de dispositivos que pueden conectarse al


bus sin dañar el controlador del bus
● Aplicación: Según su uso: DMA; STA; AGP; USB, etc
● Función: Buse de control,, bus de dirección y bus de datos
● Soporte: Materiales físicos utilizados para soportar y realizar conexiones física: tipo
de circuito impreso, cables utilizados, etc
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: equivalencia lógica de los valores eléctricos. Ej 0 Volt = “0” lógico. etc

JERARQUÍA DE BUSES

Los periféricos se conectan con los buses o “sistema de interconexión” (bus de datos, de
control y de direcciones)

Diferentes dispositivos utilizan diferentes esquemas de conexión de bus. Todos tienen que
poder interconectarse entre sí gracias a un sistema jerárquico de ordenamiento de
conexión.

BUSES DEL COMPUTADOR

Bus de datos
Mueve los datos entre la UCP, MP y E/S
Ancho de 8 o 16 bits

Bus de Direcciones
Designa el orden y destino de los datos que están en el bus de datos
Su ancho determina la capacidad máxima de direccionamiento
Usan 20 bits.

Bus de control
Coordinan y controlan el acceso a los módulos y la transferencia de información entre ellos
Temporización y el control de las operaciones
Señales más importantes: !RD, !WR, IO/!M, INTR, !INTA, CLK, RESET, HOLD, HLDA

BUS ISA
De 32 bits con CPU y Memoria.
Soporta más de un procesador conectado
Soporta tener otros buses ISA com esclavos
Compatible con placas ISA
Transmision sincrónica de alta velocidad (33 Mb/Seg)

BUS PCI
DE 32 bits para MP, 64 bits periféricos, 256 bytes para configuración de 32 dispositivos
PCI-E: 4096 bytes
Cache de datos con rafagas
Tasa de transferencia máxima de 133 y 266 MB/s
Diferentes implementaciones de slots y ranuras

BUS SATA
Conecta HDD; Ópticos o de Estado sólido
Interfaz de bajo costo y excelente performance a través de 4 hilos
Es Hot Swapping (intercambio de disco en caliente sin desconectar la energía)
Es Hot Plugging (agregar componentes sin desconectar la energía)
Diferentes revisiones 1.0, 2.0, 3.0, 3.1, 3.2, 3.3
Cada dispositivo se conecta directamente a un contador SATA. No hay master y esclavo

BUS USB
Conecta todo tipo de dispositivos
Es Plug and Play (No hace falta apagar el computador para conectar o desconectar un
dispositivo)
Dispositivos no usados pasan a bajo consumo
Trafico full duplex (transmite y recibe al mismo tiempo)
Diferentes tipos: 1.0, 1.1, 2.0, 3.0, 3.1, 3.2

ACCESO DIRECTO A MEMORIA (ADM o DMA)

Permite a los dispositivos realizar transferencias sobre la memorias sin intervención de la


CPU
Cuando la DMA realiza las transferencia, la cpu se desconecta de los buses y cede el
control -> los pines pasan a 3er estado

Procedimiento
● El periférico deberá “pedir los buses” a la CPU (pin HOLD)
● La CPU concede la operación (pin HLDA) una vez terminado el ciclo de bus en curso
● Recordemos que el ciclo de bus es la operación por la cual se realiza una
transferencia completa de datos entre dispositivos.
● La CPU deja de ser el Master de los buses

Objetivo:
● Transferir bloques considerables de datos en modo de rafaga
● Entre MP y dispositivos
● De Memoria a Memoria

Para poder implementar DMA la configuración de los buses tiene que ser dedicada

DMA INTEL 8237A (DMA CONTROLLER)

DMA Controller = encargado de gestionar los buses para las transferencias por DMA
Posee 4 canales programables (DMA0 al 3)
E 3 modos diferentes
Cada mood en 3 tipos de transferencia
Permite prioridades fijas y rotativas
Es expansible en “n” canales DMA conectando los diversos DMACs en casada
Provee direccionamiento para las transferencias

Modos de transferencia:
● Simple = se realiza una única transferencia mientras la cpu no use los buses
● En Bloques = se realiza la transferencia de un bloque de datos gestionado por un
controlador interno en el DMAC
● A demanda = Mientras el periférico siga entregando datos, el DMAC seguirá
transmitiéndolos a la MP

Priorización de canales:
● Fija = Canal 0 más prioritario, 3 el menos
● Rotativa = El canal atendido pasas a tener la menor prioridad

También podría gustarte