Fundamentos de Arquitectura de Computadoras: Buses, Registros y Modos de Direccionamiento

Enviado por Programa Chuletas y clasificado en Informática y Telecomunicaciones

Escrito el en español con un tamaño de 6,32 KB

Introducción al Lenguaje de Bajo Nivel

El lenguaje ensamblador es simplemente una representación simbólica del lenguaje máquina. El lenguaje máquina es el conjunto de instrucciones que equivalen a acciones elementales de la máquina.

Escalabilidad y Niveles de Lenguaje

La escalabilidad del sistema se define en 6 niveles:

  1. Lógica Digital (Nivel 0)
  2. Microarquitectura (Nivel 1)
  3. Arquitectura del Conjunto de Instrucciones (Nivel 2)
  4. Lenguaje Operativo (Nivel 3)
  5. Lenguaje Ensamblador (Nivel 4)
  6. Lenguaje de Alto Nivel (Nivel 5)

Arquitectura Intel IA-32 y Máquinas Virtuales

La arquitectura Intel IA-32 soporta varias máquinas virtuales. Opera virtualmente (ej. modo 8086).

  • Lenguaje L0: La computadora ejecuta instrucciones en lenguaje máquina nativo directamente con circuitos.
  • Lenguaje L1: La Máquina Virtual Uno (Mvirtual machine one) ejecuta comandos definidos por L1.

Componentes de Interconexión: Los Buses

Un Bus es una ruta eléctrica común entre múltiples dispositivos.

Tipos de Buses según su Función

  • Bus de Datos: Bus múltiple que transporta instrucciones o datos.
  • Bus de Direcciones: Bus múltiple que se utiliza para llevar la información de las localidades de memoria donde se almacenan las instrucciones o los datos.
  • Bus de Control: Bus simple que se utiliza para activar, desactivar o sincronizar dispositivos.

Tipos de Buses según la Dirección y Sincronización

  • Bus Unidireccional: La información fluye en un solo sentido.
  • Bus Bidireccional: La información fluye en ambos sentidos.
  • Bus Maestro: Dispositivo activo que inicia una transferencia.
  • Bus Esclavo: Dispositivo pasivo que espera alguna solicitud.
  • Bus Síncrono: Las transferencias se realizan en un número entero determinado de ciclos de reloj.
  • Bus Asíncrono: Las transferencias se realizan a la demanda de los dispositivos.

Unidad Aritmético Lógica (ALU) y Registros

  • ALU (Unidad Aritmético Lógica): Se encarga de realizar operaciones aritméticas y lógicas.
  • Flag (Bandera): Almacena información acerca del resultado de las operaciones realizadas por la ALU.
  • Registro General: Conjunto de registros de datos rápidos y apuntadores utilizados para localizar información en la memoria.

Registro de Banderas (Flags)

  1. TF (Trap Flag / Bandera de Atrape): Controla la operación paso a paso (debugging).
  2. CF (Carry Flag / Bandera de Acarreo): Utilizada para operaciones de adición, sustracción y multiplicación de bits.
  3. OF (Overflow Flag / Bandera de Desbordamiento): Se activa cuando la operación excede la capacidad de la localidad de destino.
  4. ZF (Zero Flag / Bandera de Cero): El bit se activa si el resultado de la operación es cero.
  5. SF (Sign Flag / Bandera de Signo): El bit se activa si el resultado se representa en forma negativa.
  6. PF (Parity Flag / Bandera de Paridad): Utilizada para la detección de errores de transmisión.
  7. DF (Direction Flag / Bandera de Dirección): Define la dirección de las operaciones con caracteres (cadenas).
  8. IF (Interrupt Flag / Bandera de Interrupciones): Indica si las interrupciones de los dispositivos están permitidas o no.
  9. AF (Auxiliary Flag / Bandera Auxiliar): Necesaria para el ajuste en operaciones aritméticas con números flotantes.

Registros de Segmentos

Los segmentos son utilizados para la gestión de memoria:

  1. CS (Code Segment / Segmento de Código): Almacena la dirección del código inicial.
  2. DS (Data Segment / Segmento de Datos): Almacena la dirección de los datos.
  3. SS (Stack Segment / Segmento de Pila): Utilizado para la colocación de memoria en una pila, para almacenamiento temporal.
  4. ES (Extra Segment / Segmento Extra): Maneja el direccionamiento de memoria y operaciones con cadenas.

Registros de Punteros e Índices

  1. SI (Source Index / Índice Fuente): Utilizado en operaciones con cadenas (16 bits).
  2. DI (Destination Index / Índice Destino): Utilizado para operaciones en cadenas.
  3. SP (Stack Pointer / Puntero de Pila): Apuntador de pila de 16 bits. Utilizado para la palabra procesada en el stack.
  4. BP (Base Pointer / Puntero Base): De 16 bits. Facilita la referencia de parámetros de datos y direcciones.

Registros de Control de Instrucción

  1. PC (Program Counter / Contador de Programa): Indica la instrucción actual del programa.
  2. IP (Instruction Pointer / Puntero de Instrucción): Registro apuntador de 16 bits que contiene el desplazamiento de dirección de la siguiente instrucción a ejecutar.

Interrupciones

Una interrupción es una señal al procesador emitida por hardware o software que indica un evento que requiere atención inmediata.

Modos de Direccionamiento

  1. Modo Real: Direcciona 1 MB (desde 0000 hasta FFFF). Solo el procesador lo ejecuta una vez.
  2. Modo Protegido: Ejecuta varios programas al mismo tiempo y asigna a cada proceso hasta 4 GB de espacio.
  3. Modo 8086 Virtual: Se ejecuta en modo protegido y crea una máquina virtual con su propio espacio de direcciones, simulando una PC 8086 con direccionamiento real.

Entradas relacionadas: