PREVIEW
Program Counter (8-bit)

Program Counter (8-bit)

Counters signal_cellular_alt Advanced schedule 28 min

Contador de programa de 8 bits (PC)

Descripción general

  • Propósito: El contador de programa de 8 bits (PC) es un registro especializado que contiene la dirección de memoria de la siguiente instrucción a buscar y ejecutar en una CPU. Se incrementa automáticamente después de cada búsqueda de instrucción para apuntar a la instrucción subsiguiente, o puede cargarse con una nueva dirección durante saltos y ramificaciones.
  • Símbolo: El contador de programa se representa mediante un bloque rectangular con entradas para reloj, datos de carga, incremento, habilitación de carga, reinicio y habilitación de salida, con una salida de dirección de 8 bits.
  • Rol en DigiSim.io: Sirve como componente crítico en los diseños de CPU, controlando el flujo de ejecución del programa al proporcionar la dirección para las búsquedas de instrucciones y permitiendo patrones de ejecución secuencial y no secuencial.

program counter 8uit component

Descripción funcional

Comportamiento lógico

El contador de programa mantiene y actualiza la dirección de la siguiente instrucción a ejecutar. Puede incrementarse secuencialmente, cargar una nueva dirección para saltos y ramificaciones, o mantener su valor actual según las señales de control.

Tabla de funciones:

RST LD INC CLK OE Operación Salida A0-A7
1 X X X X Reinicio a cero Alta-Z
0 1 X 1 Cargar nueva dirección Datos D0-D7
0 1 X 0 Cargar nueva dirección Alta-Z
0 0 1 1 Incrementar Dirección + 1
0 0 1 0 Incrementar Alta-Z
0 0 0 1 Mantener valor actual Dirección actual
0 0 0 0 Mantener valor actual Alta-Z
X X X 0 X Sin cambio Estado anterior

Nota: ↑ representa un flanco de subida del reloj, X representa una condición "no importa" RST es asíncrono - cuando está activo, reinicia inmediatamente el contador independientemente de otras señales OE controla las salidas de tres estados - cuando está inactivo (0), todas las salidas pasan a estado Alta-Z

Entradas y salidas

  • Entradas:

    • D0-D7[7:0]: Entradas de datos de 8 bits para cargar una nueva dirección durante saltos o ramificaciones.
    • CLK: Entrada de reloj de 1 bit que sincroniza las operaciones del contador.
    • LD: Entrada de habilitación de carga de 1 bit que permite la carga desde las entradas de datos cuando está activa.
    • RST: Entrada de reinicio de 1 bit que reinicia el contador a 0x00 cuando está activa.
    • INC: Entrada de habilitación de incremento de 1 bit que activa una operación de incremento cuando está activa.
    • OE: Entrada de habilitación de salida de 1 bit que controla las salidas de tres estados.
  • Salidas:

    • A0-A7[7:0]: Salidas de dirección de 8 bits que se conectan al bus de direcciones de memoria (tres estados controlados por OE).

Disposición de pines

Pines de entrada (lado izquierdo):

  • Pines 0-7: D0-D7 (Entradas de datos para carga paralela)
  • Pin 8: CLK (Reloj - sincroniza todas las operaciones)
  • Pin 9: LD (Habilitación de carga - habilita la carga de datos paralela)
  • Pin 10: RST (Reinicio - reinicia asíncronamente el contador a 0x00)
  • Pin 11: INC (Habilitación de incremento - habilita el incremento del contador)
  • Pin 12: OE (Habilitación de salida - controla las salidas de tres estados)

Pines de salida (lado derecho):

  • Pines 0-7: A0-A7 (Salidas de dirección al bus de memoria)

Parámetros configurables

  • Valor de reinicio: El valor al que se reinicia el PC (típicamente 0x00).
  • Sensibilidad al flanco de reloj: Si el PC opera en flancos de subida o bajada del reloj.
  • Control de tres estados: Cómo la señal de habilitación de salida controla los controladores de salida.
  • Retardo de propagación: El tiempo que tardan las salidas en cambiar después de un evento de disparo.

Representación visual en DigiSim.io

El contador de programa de 8 bits se muestra como un bloque rectangular con las entradas etiquetadas en el lado izquierdo (D0-D7, CLK, LD, RST, INC, OE) y las salidas (A0-A7) en el lado derecho. La entrada de reloj está típicamente marcada con un símbolo de triángulo que indica sensibilidad al flanco. Cuando se conecta en un circuito, el componente indica visualmente su estado actual a través del valor de dirección mostrado en sus salidas y los cambios de color en los cables de conexión.

Valor educativo

Conceptos clave

  • Control de flujo del programa: Demuestra cómo las computadoras gestionan la secuencia de ejecución de instrucciones.
  • Direccionamiento: Ilustra el concepto de direccionamiento de memoria en sistemas informáticos.
  • Señales de control: Muestra cómo las señales digitales controlan el comportamiento de los circuitos secuenciales.
  • Arquitectura de Von Neumann: Introduce un componente fundamental de las computadoras con programa almacenado.
  • Lógica secuencial: Demuestra la aplicación práctica de registros y contadores.

Objetivos de aprendizaje

  • Comprender el papel del contador de programa en el ciclo de instrucción de una CPU.
  • Aprender cómo se implementa el flujo de programa secuencial y no secuencial (saltos, ramificaciones).
  • Reconocer cómo las señales de control coordinan la operación del contador de programa con otros componentes de la CPU.
  • Aplicar los conceptos del contador de programa en el diseño de arquitecturas de CPU simples.
  • Comprender las limitaciones del espacio de direcciones basadas en el ancho de bits (PC de 8 bits = 256 ubicaciones direccionables).

Ejemplos de uso/Escenarios

  • Diseño básico de CPU: Componente central en una arquitectura de procesador mínima.
  • Secuenciación de instrucciones: Controlar el orden de ejecución de instrucciones.
  • Implementación de saltos: Cambiar el flujo del programa para ejecutar instrucciones fuera de secuencia.
  • Llamadas a subrutinas: Guardar la dirección actual antes de saltar a una subrutina.
  • Implementación de bucles: Ejecutar repetidamente una secuencia de instrucciones.
  • Manejo de interrupciones: Redirigir temporalmente el flujo del programa para atender interrupciones.

Notas técnicas

  • Un PC de 8 bits limita la memoria directamente direccionable a 256 bytes (2^8 ubicaciones).
  • El PC se implementa típicamente usando un registro de 8 bits combinado con un circuito incrementador.
  • En la mayoría de los diseños de CPU, el PC se incrementa automáticamente durante la fase de búsqueda de instrucción.
  • Las instrucciones de salto y ramificación modifican el flujo secuencial normal cargando nuevos valores en el PC.
  • El valor del PC se coloca típicamente en el bus de direcciones durante la fase de búsqueda del ciclo de instrucción.
  • Las implementaciones más avanzadas pueden incluir características como predicción de saltos o segmentación para mejorar el rendimiento.
  • En arquitecturas de CPU más grandes, se usan PCs con anchos de bits más amplios (16, 32, 64) para direccionar espacios de memoria más grandes.

Componentes relacionados

  • Memoria (RAM/ROM): Almacena las instrucciones que el PC direcciona.
  • Bus de direcciones: El bus controlado por la salida del PC.
  • Registro de instrucción (IR): Almacena la instrucción buscada desde la dirección apuntada por el PC.
  • Unidad de control: Genera las señales INC, LOAD, ENABLE, RESET para el PC basándose en las instrucciones decodificadas.
  • ALU: Puede calcular direcciones de destino de ramificación que se cargan en el PC.
  • Registros: Los registros de propósito general pueden contener direcciones para saltos indirectos.

school Ruta de Aprendizaje

arrow_back Requisitos Previos

arrow_forward Siguientes Pasos

help_outline Preguntas Frecuentes

¿Qué es un Contador de Programa?

El PC contiene la dirección de memoria de la siguiente instrucción a buscar. Se incrementa después de cada búsqueda y puede cargarse con destinos de salto.

¿Cómo habilita el PC los saltos?

Las instrucciones de salto cargan una nueva dirección en el PC, cambiando el flujo de ejecución de secuencial al destino del salto.

play_arrow Ejecutar Circuito en Vivo

Ver Otros Componentes