Arquitectura de Buses de Alta Velocidad y Gestión de Sistemas Operativos
Enviado por Programa Chuletas y clasificado en Informática y Telecomunicaciones
Escrito el en español con un tamaño de 4,79 KB
Arquitectura de Buses de Alta Velocidad: El Caso TLSB
Características Generales del Bus TLSB
- Es un bus **síncrono** con buses de datos y direcciones separados.
- Ofrece un ancho de banda máximo de **3,2 Gbytes/s**.
- Dispone de un bus de datos de **256 bits**.
Direccionamiento en TLSB
- El direccionamiento es **geográfico** para los módulos conectados, utilizando 3 líneas. Se pueden conectar hasta **9 módulos**.
- Cada módulo puede albergar hasta **8 direcciones virtuales**.
- Hasta **1 TB** de memoria es direccionado mediante direcciones de **40 bits**.
- La dirección es decodificada por el solicitante para extraer la dirección virtual del banco de memoria.
- Hasta **16 bancos de memoria** son soportados por el sistema.
- Las transferencias emplean bloques de caché de **64 bytes**.
- El solicitante puede lanzar una petición de bus al mismo tiempo que compara la etiqueta de caché local.
- De los 40 bits de direcciones, los bits **6-39** se toman como dirección de bloque de 64 bytes.
- El bit **5** se emplea para definir la secuencia en que los dos bloques de 32 bytes aparecen en el bus: High>low o Low>high.
Arbitraje en TLSB
- Cualquier transacción en el bus debe iniciarse con una petición por parte del módulo interesado.
- El arbitraje es **distribuido**; no existe un dispositivo que actúe de árbitro. La contienda tiene que ser resuelta entre los distintos módulos.
- La prioridad de los nodos se inicializa a su dirección geográfica.
- Se emplea un mecanismo de **Round Robin** para actualizar la prioridad.
Transferencias en TLSB
- Cuando un nodo esclavo está listo para proporcionar los datos que le han sido requeridos, toma control del bus.
- El esclavo activa la línea denominada **TLSB_SEND_DATA**, a lo que todos los dispositivos tienen tiempo para activar las líneas **TLSB_SHARED** o **TLSB_DIRTY**.
- La línea **TLSB_SHARED** activada indica que algún dispositivo dispone de una copia válida y desea seguir disponiendo de ella. Esta línea puede ser activada por cualquier dispositivo en respuesta a cualquier comando.
- La línea **TLSB_DIRTY** activada indica que hay un dispositivo cuya copia es más reciente que la que hay en memoria. En tal caso, él se encargará de volcar los datos al bus.
- La línea **TLSB_DIRTY** solo puede ser activada en respuesta a comandos de lectura.
- Las especificaciones del protocolo no establecen el protocolo de coherencia, sino solo el funcionamiento de las líneas.
Nivel de Sistema Operativo
Sistema Operativo de Red
Un sistema operativo de red se caracteriza por ser **software y hardware débilmente acoplado**. Permite operaciones en máquinas remotas a través del adaptador de red. Todos los sistemas operativos modernos ofrecen esta funcionalidad, la cual facilita la **computación paralela**, aunque a menudo con eficiencia limitada.
Sistema Operativo Multiprocesador
Se basa en **software fuertemente acoplado** sobre **hardware fuertemente acoplado**, y su funcionalidad viene por defecto. Proporciona un entorno de **multiprogramación** sobre hardware multiprocesador, funcionando de manera similar a un monoprocesador, pero con la capacidad de procesamiento multiplicada.
- El **planificador** debe dar servicio a la cola de procesos haciendo uso eficiente de los procesadores.
- Un **proceso** es una unidad de protección y asignación de recursos.
- Un **hilo** (o thread) es una unidad de planificación.
- Un proceso puede albergar varios hilos, cada uno de ellos con su propia pila, estado de ejecución y contexto de procesador.
Tipos de Multiprocesadores
- **Multiprocesadores simétricos (SMP)**: Todos los nodos tienen la misma funcionalidad y pueden ejecutar el sistema operativo.
- **Multiprocesadores asimétricos (maestro-esclavo)**: Un nodo ejecuta el sistema operativo, y los otros ejecutan las aplicaciones.
Planificación en Sistemas Multiprocesador
La planificación en sistemas multiprocesador implica una tarea doble:
- Decidir qué proceso recibe tiempo de CPU.
- Decidir qué CPU alberga el proceso.
Modelos de Planificación
- **Tiempo compartido**: Todos los hilos se encolan y son planificados de forma independiente.
- **Espacio compartido**: Los hilos que pertenecen al mismo proceso se planifican en conjunto; empiezan cuando hay un número suficiente de CPUs disponibles y no se interrumpen.
- **En pandilla** (Gang Scheduling): Los hilos pueden ser interrumpidos, pero los hilos relacionados son interrumpidos y recuperados a la vez.