Conceptos Básicos de la Arquitectura de Computadores
1. Módulos de E/S del Computador
Definición: Los módulos de Entrada/Salida (E/S) son dispositivos o componentes que permiten al computador comunicarse con el exterior, ya sea para recibir datos (entrada) o enviar datos (salida). Ejemplos incluyen teclados, monitores, discos duros, y redes.
Justificación: Son esenciales para la interacción del usuario y para que el computador pueda recibir y enviar datos hacia dispositivos externos.
2. Sistema de Control por Computador
Definición: Es un sistema que utiliza el computador como unidad central para monitorear, procesar y controlar dispositivos o sistemas externos mediante sensores y actuadores.
Justificación: Proporciona automatización, precisión y flexibilidad en aplicaciones como la manufactura, el control de procesos y la robótica.
3. Jerarquía de los Buses de la Computadora
Definición: La jerarquía de los buses de un computador describe cómo están organizados los diferentes buses que permiten la comunicación entre los componentes. Ejemplos de buses incluyen el bus de datos, bus de direcciones y bus de control.
Justificación: La jerarquía optimiza el rendimiento al priorizar los buses más rápidos (por ejemplo, bus del procesador) y segmentar las tareas según la velocidad requerida.
4. Computador Servidor
Definición: Un computador servidor es una máquina dedicada a proveer servicios y recursos a otros computadores (clientes) dentro de una red. Ejemplo: servidores web, de correo o de archivos.
Justificación: Es fundamental en entornos de red para gestionar el acceso, compartir recursos y garantizar la disponibilidad y seguridad de los servicios.
Características Técnicas de un Computador Servidor
- Procesador: Mínimo de 4 núcleos (por ejemplo, Intel Xeon o AMD EPYC).
- Memoria RAM: De 16 GB o más, dependiendo de la cantidad de clientes.
- Almacenamiento: Discos duros en RAID para redundancia y capacidad (mínimo 1 TB).
- Sistema Operativo: Windows Server, Linux (por ejemplo, Ubuntu Server o CentOS).
- Red: Adaptadores de red Gigabit Ethernet o superior.
Características Técnicas de Arduino
- Microcontrolador: ATmega328P (8-bit)
- Chip USB: ATmega16U2
- Conector USB: USB-B hembra
- Voltaje de operación: 5V DC
- Voltaje de alimentación: 6V – 20V DC (7-12V recomendado)
- Pines digitales I/O: 14 (6 salidas PWM)
- Entradas analógicas: 6 (ADC 10-bit)
- Corriente entrada/salida por pin: 40mA máx.
- Memoria FLASH: 32KB (2KB usados por el Bootloader)
- Memoria SRAM: 2KB
- Memoria EEPROM: 1KB
- Frecuencia de reloj: 16MHz
Ejemplo de Código para Arduino con Sensores
#include <DHT.h> // Librería para el sensor DHT11
#define LED_PIN 13 // Pin para el LED
#define PROXIMITY_SENSOR_PIN 2 // Pin para el sensor de proximidad
#define PIR_SENSOR_PIN 3 // Pin para el sensor PIR
#define DHT_PIN 4 // Pin para el sensor DHT11
#define MOTOR_PIN 9 // Pin para controlar el motor CC
#define DHT_TYPE DHT11 // Tipo de sensor DHT (en este caso DHT11)
DHT dht(DHT_PIN, DHT_TYPE); // Crear objeto DHT
void setup() {
pinMode(LED_PIN, OUTPUT); // Configurar el pin del LED como salida
pinMode(PROXIMITY_SENSOR_PIN, INPUT); // Configurar el sensor de proximidad como entrada
pinMode(PIR_SENSOR_PIN, INPUT); // Configurar el sensor PIR como entrada
pinMode(MOTOR_PIN, OUTPUT); // Configurar el pin del motor como salida
Serial.begin(9600); // Inicializar comunicación serial para leer los datos del sensor
dht.begin(); // Inicializar el sensor DHT
}
void loop() {
// Leer el estado del sensor de proximidad
int proximityState = digitalRead(PROXIMITY_SENSOR_PIN);
// Leer el estado del sensor PIR (movimiento)
int motionState = digitalRead(PIR_SENSOR_PIN);
// Leer la humedad y la temperatura
float humidity = dht.readHumidity();
float temperature = dht.readTemperature();
// Verificar si hubo un error en la lectura del DHT
if (isnan(humidity) || isnan(temperature)) {
Serial.println("Error leyendo el sensor DHT!");
return;
}
// Controlar el LED en función del sensor de proximidad
if (proximityState == HIGH) {
digitalWrite(LED_PIN, HIGH); // Encender LED si la proximidad es detectada
} else {
digitalWrite(LED_PIN, LOW); // Apagar LED si no hay proximidad
}
// Controlar el motor con el sensor PIR (movimiento)
if (motionState == HIGH) {
digitalWrite(MOTOR_PIN, HIGH); // Encender motor si se detecta movimiento
Serial.println("Movimiento detectado!");
} else {
digitalWrite(MOTOR_PIN, LOW); // Apagar motor si no hay movimiento
}
// Mostrar los datos de humedad y temperatura en el monitor serial
Serial.print("Humedad: ");
Serial.print(humidity);
Serial.print(" % ");
Serial.print("Temperatura: ");
Serial.print(temperature);
Serial.println(" *C");
delay(2000); // Esperar 2 segundos antes de leer nuevamente
}
Preguntas y Respuestas sobre Arquitectura de Computadores
Se cargan los espacios de los acumuladores y comparadores. Se establece el proceso en org 100h.
Se cargan los valores en los acumuladores y el contenido se envía a A. Empieza el bucle principal.
Incrementa segundos en B. Suma segundos en C para enviarlos a D. Suma minutos en D, mueve de D a C y de C a L.
Suma minutos en L hasta llegar a 00h repitiendo el bucle.
¿Qué es la arquitectura de Von Neumann?
R: Es un modelo en el que los datos y las instrucciones se almacenan en una única memoria de lectura-escritura y se acceden mediante posiciones específicas.
¿Cuáles son los componentes principales de un computador?
R: Procesador (Unidad de Control y Unidad Aritmético-Lógica), Memoria Principal y Sistema de Entrada/Salida.
¿Qué es una máquina multinivel?
R: Es una representación estructurada de un sistema computacional, con varios niveles de abstracción donde cada nivel depende del nivel inferior.
¿Qué es la arquitectura del conjunto de instrucciones?
R: Es la interfaz entre el hardware y el software, que define instrucciones, modos de direccionamiento y formatos.
¿Qué tipos de interrupciones existen?
R: Programa, Temporización, Entrada/Salida y Fallo de Hardware.
¿Qué es el MAR y cuál es su función?
R: El MAR (Memory Address Register) especifica la dirección en memoria para la próxima lectura o escritura.
¿Qué es el MBR y cuál es su función?
R: El MBR (Memory Buffer Register) almacena datos transferidos entre la CPU y la memoria.
¿Qué significa que un bus sea síncrono?
R: Que las operaciones del bus están sincronizadas por una señal de reloj, completándose en ciclos específicos.
¿Cuál es la diferencia entre buses dedicados y buses multiplexados?
R: Los buses dedicados tienen líneas separadas para datos y direcciones, mientras que los multiplexados comparten las mismas líneas para ambos.
¿Qué es el arbitraje centralizado en un bus?
R: Es un mecanismo donde un único árbitro decide qué dispositivo obtiene acceso al bus.
¿Qué es el arbitraje descentralizado?
R: Es un mecanismo donde no hay un árbitro central, y todos los dispositivos monitorean las líneas de solicitud.
¿Qué función tiene el contador de programa (PC)?
R: Contiene la dirección de la próxima instrucción a ejecutar.
¿Qué es una interrupción en el ciclo de instrucción?
R: Es una interrupción en la secuencia normal de operaciones, que permite manejar eventos externos.
¿Qué diferencia hay entre buses síncronos y asíncronos?
R: Los buses síncronos utilizan una señal de reloj para sincronización, mientras que los asíncronos no dependen de un reloj maestro.
¿Qué es la memoria caché y cuál es su propósito?
R: Es una memoria rápida y costosa que almacena temporalmente datos frecuentemente utilizados para mejorar el rendimiento.
¿Qué es un DMA y cómo interactúa con la CPU?
R: El DMA (Direct Memory Access) permite transferir datos directamente entre la memoria y los dispositivos de E/S sin la intervención constante de la CPU.
¿Qué tipos de interrupciones existen?
R: Programa, Temporización, Entrada/Salida y Fallo de Hardware.
¿Qué significa que un bus sea síncrono?
R: Que las operaciones del bus están sincronizadas por una señal de reloj, completándose en ciclos específicos.
¿Cuál es la diferencia entre buses dedicados y buses multiplexados?
R: Los buses dedicados tienen líneas separadas para datos y direcciones, mientras que los multiplexados comparten las mismas líneas para ambos.
¿Qué es el arbitraje centralizado en un bus?
R: Es un mecanismo donde un único árbitro decide qué dispositivo obtiene acceso al bus.
¿Qué es el arbitraje descentralizado?
R: Es un mecanismo donde no hay un árbitro central, y todos los dispositivos monitorean las líneas de solicitud.
¿Qué ventaja ofrece un bus de alta velocidad?
R: Acerca los dispositivos de alta performance al procesador, siendo independiente de cambios en la arquitectura.
¿Qué función tiene el contador de programa (PC)?
R: Contiene la dirección de la próxima instrucción a ejecutar.
¿Qué es una interrupción en el ciclo de instrucción?
R: Es una interrupción en la secuencia normal de operaciones, que permite manejar eventos externos.
¿Cuáles son las líneas funcionales de un bus?
R: Línea de datos, línea de dirección y línea de control.
Definiciones Adicionales
La arquitectura de un computador es cómo el usuario o programador percibe y utiliza el sistema, definiendo cómo interactuar con él sin preocuparse por cómo está construido físicamente.
Arquitectura de Computadores = Arquitectura del conjunto de instrucciones + Organización de la máquina
La arquitectura del conjunto de instrucciones es una interfaz clave entre el hardware y el software, que define cómo se comunican usando instrucciones estandarizadas en lenguaje de máquina.
- MAR (Memory Address Register): Especifica la dirección en memoria de la próxima lectura o escritura.
- MBR (Memory Buffer Register): Registro para datos de memoria.
- E/S AR (E/S Address Register): Especifica un dispositivo de E/S.
- E/S BR (E/S Buffer Register): Para intercambiar datos entre el módulo de E/S y la CPU.
Características de los Buses
- Se necesitan líneas de conexión entre los componentes del computador.
- Ruta eléctrica común entre múltiples dispositivos.
- Medio de transmisión compartido, se puede utilizar líneas de transmisión paralela o serial.
Usualmente hay tres grupos funcionales:
- Línea de Datos: Bus de datos.
- Línea de Dirección: Fuente o destino.
- Línea de Control: Controla el acceso y uso de las anteriores.
Los dispositivos conectados al bus pueden estar en estado:
- Activo (maestros): Listos para iniciar transferencia, obtener el uso del bus, transferir dato o petición.
- Pasivo (esclavos): Aguardando solicitudes.
Mecanismo de Arbitraje
- Centralizado: Un solo árbitro del bus determina qué dispositivo tendrá acceso.
- Descentralizado o Distribuido: Todos los dispositivos monitorean las líneas de solicitud, requiere mayor número de líneas pero ahorra el costo del “árbitro”.
Temporización
- Síncrono: La línea es manejada por un oscilador de cristal.
- Asíncrono: No tiene un reloj maestro.