Unidad de Control
La unidad de control orquesta las operaciones de la computadora, incluyendo la lectura, procesamiento y almacenamiento de datos. Se distinguen dos enfoques principales:
Control Cableado
- Máquina de estados finitos: El control fluye a través de una serie de estados, donde las entradas determinan la transición entre estados y cada estado activa señales de control específicas.
- Células de retardo: Las líneas de control se conectan a las salidas de las células de retardo, que representan el estado actual y activan las señales correspondientes.
- Secuenciador: Utiliza un contador de periodos y, basándose en la instrucción, activa las señales necesarias.
Unidad de Control Microprogramada
Las instrucciones se descomponen en operaciones elementales agrupadas en ciclos de reloj. El conjunto de instrucciones se denomina microprograma y el conjunto de microprogramas, microcódigo.
Se emplea una ROM de control donde cada bit de la palabra representa una señal. Para cada ciclo de ejecución, existe una palabra en la ROM con los bits activos correspondientes a las señales que se deben activar. Un microcontador de programa gestiona la secuencia. La microinstrucción consta de dos campos: control (qué hacer) y secuenciamiento (por dónde seguir).
Nanoinstrucciones
n x m >= n x log d + d x m
Memoria
Memoria Virtual Paginada
XXYY –> XX página virtual, YY desplazamiento. Página física && desplazamiento.
- La CPU genera una referencia a memoria (dirección virtual).
- Se busca en la tabla de páginas y se actualiza el TLB.
- Si la traducción no está en la tabla de páginas, significa que la página no está en memoria física. Se genera una excepción para que el SO cargue la página en memoria física y actualice la tabla de páginas.
- Se repite el acceso.
Sustitución: La gestión de páginas la realiza el SO (software) mediante algoritmos como LRU, FIFO y WS.
Escritura: Dado que los discos no permiten accesos a unidades menores que el sector, se requiere postescritura con ubicación.
Tamaño de página: Influye en el rendimiento, similar a la caché.
- Si la página es de mayor tamaño: la tabla de páginas es menor (menos páginas), mayor eficiencia con memoria secundaria.
- Si la página es de menor tamaño: menor desperdicio por fragmentación interna, menor ancho de banda necesario con memoria secundaria.
Ventajas: Bloques del mismo tamaño, ubicación y sustitución más sencillas, traducción más rápida.
Memoria Virtual Segmentada
WWZZ –> WW segmento virtual, ZZ desplazamiento. Segmento físico + desplazamiento = dirección.
La memoria física se divide en bloques de tamaño variable (segmentos).
Ubicación: Los segmentos no caben en cualquier hueco.
Identificación: Similar a la tabla de páginas, existe una tabla de segmentos. Se puede incluir TLB.
Sustitución: No se puede desalojar cualquier segmento; debe caber.
Escritura: Postescritura con ubicación por las mismas razones.
Ventajas: División lógica y no física. No hay fragmentación interna (pero sí externa).
E/S (Entrada/Salida)
El sistema de E/S comunica la CPU con el mundo exterior.
Comunicación CPU-puerto: Se especifica la dirección del puerto, el sentido de la comunicación (lectura/escritura) y el dato.
Periférico con 3 tipos de puerto:
- De configuración: Define qué hacer o cómo.
- De estado: Indica a la CPU la situación del periférico.
- De datos: Indica a la CPU el dato que debe leer o escribir.
Alternativas de Diseño
E/S Programada
La CPU controla los periféricos mediante un programa. Los periféricos esperan a ser atendidos.
- La CPU envía un comando al periférico.
- La CPU entra en un bucle de espera hasta que el periférico procesa el comando.
- La CPU prosigue con el programa de control.
La CPU está siempre pendiente del periférico (bucles de espera, lento). La prioridad la marca el programa de atención (fija).
E/S por Interrupciones
- La CPU envía el comando y continúa trabajando en otras tareas hasta que el periférico procesa el comando e interrumpe a la CPU.
La línea de aceptación recorre los periféricos en una cadena daisy-chain, donde el orden determina la prioridad. Si hay varias líneas de petición, debe haber el mismo número de líneas de aceptación. Tras terminar una instrucción, la CPU verifica si hay peticiones pendientes.
- Termina la instrucción.
- Identifica el periférico.
- Almacena en la pila el CP y el registro de estado.
- Ejecuta la ISR (Rutina de Servicio de Interrupción).
- Prosigue con la ejecución normal.
Identificar periférico:
- Muestreo o «polling»: La CPU comprueba por programa si ha habido una interrupción.
- Interrupciones vectorizadas: Cuando el periférico recibe la aceptación de una interrupción, envía un dato que lo identifica ante la CPU. Con este dato, la CPU sabe qué periférico interrumpe y qué rutina le corresponde. Se denomina número de vector y la dirección de la rutina, vector de interrupción. Vector = M[inicio_tabla + nº_vect * tamaño].
E/S por DMA (Acceso Directo a Memoria)
El objetivo es que el periférico transfiera un bloque de datos sin la participación de la CPU, accediendo directamente a la memoria.
- La CPU indica al periférico el tipo y la característica de la transferencia.
- El periférico se prepara para la transferencia.
- El periférico realiza la transferencia con la memoria.
- Al finalizar, puede avisar a la CPU.
Controlador DMA: Gobierna la transferencia en lugar del periférico, gestiona el bus y las transferencias de varios periféricos, asignando prioridades.
Procesadores de E/S
Se dedica una CPU exclusivamente a gestionar la E/S. La CPU principal solo indica la operación a realizar.
Controladoras de Dispositivos
Funciones: Comunicación con la CPU, comunicación con el periférico, almacenamiento temporal de datos, control y temporización, detección de errores.
Buses
Modo de operación (2 fases):
- Fase de direccionamiento: El maestro envía la dirección y activa las señales de control.
- Fase de datos: Escritura (el maestro envía el dato), lectura (recibe el dato), activa las señales de control necesarias.
Estrategia de control: Maestro, elemento capaz de iniciar una transferencia (CPU o controlador DMA). Si hay varios maestros, se necesita un mecanismo de arbitraje.
Tipos de arbitraje:
- Por daisy-chain: Los maestros solicitan el bus y la concesión se recorre por una línea daisy-chain.
- Por líneas independientes: Cada maestro tiene una línea de aceptación de petición que lo une al árbitro, quien decide por prioridades.
- Distribuido: Cada maestro pone un identificador en el bus y, según el resultado final, sabe si lo recibe.
- Por colisiones: Los dispositivos toman el bus directamente. Si detectan una colisión, esperan un tiempo y lo reintentan.
Labor del SO: Traducir direcciones lógicas a físicas, gestionar el dispositivo, gestionar operaciones de E/S, convertir formatos y tratar errores.