Arquitectura de Computadoras: Buses, Interrupciones y Ensamblador

Buses

Tipos de Señales

  • Continuas: Valor constante, no cambia.
  • Alternas: Depende del tiempo, 1HZ = 1 Ciclo x seg.
  • Analógicas: Continuas, como ondas sonoras, con infinitos valores.
  • Digitales: Discretas, no hay valores intermedios.

Arbitraje

  • Centralizado en serie: Mayor prioridad cuanto más lejos, los de menor prioridad acceden menos.
  • Centralizado en paralelo: Cada dispositivo tiene una línea de petición propia.
  • Distribuido: Autoselección o detención de colisión.

Sincronización

  • Síncrona: ÚNICA señal de reloj que regula la transmisión de información.
  • Asíncrona: Cada dispositivo regula la sincronización.

Tipos de Buses

  • Data Bus: Tiene las líneas para mover los datos, con ancho de 8, 16, 32, 64 bits, es bidireccional.
  • Bus de Direcciones: Contiene las líneas necesarias para direccionar la memoria. Unidireccional.
  • Bus de Control: Sus líneas se utilizan para coordinar y controlar el acceso a los módulos y la transferencia de información. Bidireccional.

Chipset

Conjunto de chips de la placa madre:

  • Northbridge: Conecta los dispositivos más rápidos (video/memoria).
  • Southbridge: Conecta los dispositivos más lentos, como USB, SATA.

Entrada y Salida

Tipos

  • Programadas: Son controladas por el CPU, se las denomina IAM o de acceso indirecto.
  • Interrupciones: Son controladas por el CPU y la tarjeta interfaz, todo se maneja con el CPU y el controlador.
  • Mediante DMA: Es un dispositivo que accede directamente a la memoria, posee capacidad de procesamiento, entrada y salida. Debe recibir cierta información:
    • Un bloque de control con el tipo de operación.
    • La dirección de memoria donde se encuentran los datos.
    • La dirección del periférico sobre el cual se van a almacenar.
    • La cantidad de palabras que se almacenarán.

Tarjeta de Interfaz

Su función es coordinar el tráfico entre los recursos internos y dispositivos externos, decodifica órdenes, intercambia datos y realiza reconocimientos de direcciones.

Organización del Espacio de Direcciones

Bus Único

La memoria principal y los dispositivos de E/S comparten el mismo espacio de memoria.

  • Ventaja: Simplifica la estructura y el reparto de instrucciones.
  • Desventaja: No se permiten transferencias simultáneas, no se permite el DMA.

Bus Dedicado

El procesador tiene un espacio de direcciones separado. Por ejemplo, el 8086 utiliza 20 bits para memoria principal y 16 bits para entrada y salida.

Componentes del Bus

  • Datos: Intercambio de información entre CPU y memoria principal o los periféricos.
  • Control: Lleva información referente a estados y órdenes.
  • Direcciones: Identifica al periférico requerido.
  • Sincronización: Señal de reloj.

Arquitectura de Buses

Única

La memoria principal y los periféricos se tratan como si fueran todos posiciones de memoria, compartiendo el mismo espacio de direcciones. No hay diferencia entre operaciones de E/S y lectura y escritura.

Dedicada

La memoria principal y los periféricos se tratan de manera distinta, no comparten el mismo espacio de direcciones. Permite incorporar controladores DMA.

Acceso Directo a Memoria (DMA)

Señales principales:

  • HOLD: Solicitud de buses a la CPU.
  • HOLDA: Aceptación de la CPU.
  • DREQ: Solicitud de acceso DMA.

Interrupciones

Etapas

  1. Solicitud: Señal asíncrona de entrada a la CPU.
  2. Reconocimiento: La CPU reconoce el pedido y comienza con la atención de la interrupción.
  3. Atención: Se ejecuta la rutina del dispositivo llamado (ISR).
  4. Retorno: Cuando termina la rutina de atención, se ejecuta la rutina que fue interrumpida.

Tipos de Interrupciones

  • Enmascarada: Si IF=0 la solicitud es ignorada, si IF=1 el pedido es aceptado.
  • No enmascarada: Su atención es inevitable, es siempre la interrupción más prioritaria. Se realiza a través de la entrada NMI.

Reconocimiento – Secuencia de Eventos

  1. Luego de finalizar la instrucción en curso, la CPU se dispone a reconocer al dispositivo solicitante.
  2. El dispositivo solicitante coloca 1 bit en identificación.
  3. La CPU toma el tipo y determina en qué dirección de la memoria principal está la ISR.
  4. La dirección se forma de 2 registros de 16 bits CS:IP.
  5. Si necesito 4 bytes de puntero para cada uno, en la memoria principal tengo un espacio de 1024 bytes. Este espacio se llama “Vector de Interrupciones” (IVT).

Vector de Interrupciones

Va desde 00000h hasta 003FFh, puede ser modificado durante la ejecución de cualquier programa. Está compuesto por dos bytes para alojar el IP y dos para el CS.

  • LSB-IP
  • MSB-IP
  • LSB-CS
  • MSB-CS

Ensamblador

debug es un programa en DOS que permite ver el contenido de los registros, de la memoria e invocar un ensamblador.

  • CS: Señala la dirección del segmento de código de programa que se está ejecutando.
  • DS: Señala la dirección del segmento de datos del programa en ejecución.
  • SS: Señala la dirección del segmento donde está la pila del programa.
  • ES: Es un segmento auxiliar para señalar espacio extra o almacenar direcciones intermedias.

Instrucciones

  • Suma: ADD AX,[5000]
  • Escritura o Store: MOV [200A],AX

A1: Copia un dato. E: Sirve para editar y ver posiciones de memoria. R: Sirve para ver registros del procesador.

Ejemplo: Copiar a un registro CX el número 83h

MOV CX,83