14 KiB
TEMA 1: Introducción
1. Estructura básica de un computador
!Pasted image 20250218105957.png !Pasted image 20250218110013.png !Pasted image 20250218110027.png
2. Entrada/Salida
!Pasted image 20250218110130.png El sistema de E/S tiene varias funciones:
- Direccionamiento: para seleccionar el dispositivo
- Sincronización: para iniciar la transferencia
- Transferencia: método de transferencia
Interfaz E/S (simplificada)
!Pasted image 20250218110255.png
Entrada/Salida programada
- La comunicación siempre la inicia la CPU
- Método de queries para conocer el estado del módulo E/S
- Inconvenientes:
- La CPU tiene que gastar tiempo de ejecución en atender a los procesos E/S
- Ventajas:
- Alta velocidad Hay dos tipos de direccionamiento:
- Mapeado en memoria: la CPU ve los dispositivos E/S como posiciones de memoria. Es más sencillo pero se pierde espacio de memoria.
- Aislado: las direcciones E/S se diferencian mediante una señal de control.
Entrada/Salida por interrupciones
- Un dispositivo puede llamar la atención de la CPU:
- El módulo E/S provoca la interrupción
- La CPU le comunica un orden de E/S y vuelve a lo suyo (cambio de contexto)
- Cuando la subrutina de E/S se ejecuta el módulo de E/S lo comunica para que el CPU decida cuál será su próxima acción y estado.
- Ventajas:
- Atención inmediata
- El CPU puede hacer otras cosas mientras el dispositivo E/S está ocupado
TEMA 2: Buses locales normalizados
1. Concepto de bus normalizado
Bus: conjunto de líneas eléctricas sobre la PCB. Es un medio compartido.
Ejemplo de bus y sus líneas
Un ejemplo de bus sería el Bus de Control con las líneas típicas:
- Memory write
- Memory read
- I/O Write
- I/O Read
- Transfer ACK
- Bus Request
- Bus Grant
- Int Request
- Int ACK
- Clock
- Reset
Procesos de transferencia
Por ejemplo para la escritura E/S:
- El módulo de E/S que quiere iniciar la transferencia solicita el uso del bus (Bus Request)
- El arbitrador concede el bus (Bus Grant)
- Sitúa en el bus de direcciones (AB) la dirección o puerto E/S donde quiere transferir el dato
- Sitúa el dato a transferir en el bus de datos (DB)
- Activa la línea de I/O Write del bus de control
- El destinatario ha recibido el dato (Transfer ACK)
- Deja libre el bus para su uso
NOTACIÓN
- Bus Master:Módulo que inicia la transmisión
- Bus Slave:Módulo direccionado por el Bus Master
- Arbitrador:circuito especial que recoge las peticiones para tomar el control del bus y decide quién lo toma
## 2. Métodos de conexión de un dispositivo al bus local
### Conexión directa
**Restricciones:**
- Depende del CPU
- Sólo lo puede usar un dispositivo local para evitar problemas de impedancia por extra carga
- Costosa, debido a la alta frecuencia
- No permite transferencias de datos entre CPU y otros dispositivos mientras se usa este bus con otros periféricos
**Ejemplo:** VLB tipo A
!Pasted image 20250225111612.png
### Conexión mediante buffer
**Mejoras:**
- Sólo presenta una impedancia. Usualmente hasta 3 dispositivos
**Restricciones:**
- En esencia, con buffer y el local son un único bus: cualquier transferencia iniciada por CPU alcanzará el bus local con buffer. **NO** es posible la utilización simultánea.
**Ejemplo:** VLB tipo B
!Pasted image 20250225111801.png
### Conexión con filosofía workstation
**Mejoras:**
- Introducción de caché L2 unida a un puente para adaptar las velocidades de transferencia entre bus local del CPU y el de E/S.
- Independencia del procesador que implementa la CPU.
**Ejemplo:** PCI
!Pasted image 20250225111938.png
## 3. PnP
### El problema
- Hay un número limitado de IRQs, canales DMA, puertos de E/S y regiones de memoria E/S
- Algunas IRQs y direcciones están muy estandarizadas
- No hay automatización de las tareas de configuración de periféricos
### Solución PnP
1. El programa de configuración PnP encuentra todos los dispositivos que soportan PnP y pregunta a cada uno qué recursos del bus necesitan.
2. Decide qué recursos puede adjudicar.
3. Establece un criterio mediante el cual adjudicar recursos del bus.
## 4. Bus SPI
- El bus SPI (Serial Peripheral Interface) fue desarrollado por Motorola en 1980. Sus ventajas respecto a otros sistemas han hecho que se convierta en un estándar.
- El bus SPI tiene arquitectura Master-Slave. El dispositivo maestro puede iniciar la comunicación con uno o varios esclavos y envía (Tx) o recibe (Rx) datos de ellos. Los esclavos ni pueden iniciar comunicación ni comunicarse entre ellos.
- Hay una línea para transmisión (Tx) y otra para recepción (Rx) por lo que la comunicación es Full Dúplex.
- Es síncrono, el dispositivo maestro proporciona el CLK.
!Pasted image 20250225112945.png
- **MOSI (Master-Out, Slave-In):** para la comunicación maestro a esclavo.
- **MISO (Master-In, Slave-Out):** para la comunicación esclavo a maestro.
- **SCK (Clock):** señal de CLK del maestro.
!Pasted image 20250225113139.png
5. Bus I2C
- El estándar I2C (Inter-Integrated Circuit) requiere únicamente dos cables para su funcionamiento, uno para CLK y otro para el envío de datos (SDA). El funcionamiento es más complejo así como su circuitería.
!

- En el bus cada dispositivo tiene una dirección, que se emplea para acceder a ellos de forma individual. Esta dirección puede ser fijada por hardware o software.
- En general, cada dispositivo conectado al bus debe tener dirección única. Se podría cambiar la dirección o implementar un segundo bus.
- Este bus tiene una arquitectura maestro-esclavo. Es posible que haya más de un maestro pero SÓLO un maestro a la vez.
- Es síncrono, el maestro proporciona CLK.
- Tiene resistencias de pull-up a
V_{CC}.
TEMA 3: Teclados
1. Fundamentos físicos
!
!
Las teclas están "mapeadas" a unos códigos llamados Scan:
2. Estructura y funcionamiento
TEMA 5: La interfaz ATA/IDE
1. Introducción
La interfaz usada para comunicar el disco duro y unidades ópticas con el PC se suele llamar IDE (Integrated Drive Electronics) aunque su nombre oficial es ATA (Advanced Technology Attachment).
- ATA: ATA originalmente es una interfaz paralela de 16 bits.
- SATA: Al final de los 2000 se presentó una nueva interfaz: SATA (Serial ATA) que sería adoptada por los PC de sobremesa y portátiles a los pocos años. SATA envía los bits uno a uno, lo que permite que los cables sean más pequeños y finos y con más rendimiento. SATA es compatible con ATA a nivel software.
Conectores
2. Tipos de ATA
UDMA == Ultra-ATA
- ATA-1: Originalmente basada en el bus ISA.
- 40/44 pines
- M-S
- PIO y DMA
- Traducción de CHS (Cylinder, Head, Sector) y LBA (Logical Block Address) que admiten hasta 136,9GB pero limitado por la BIOS a 8,4GB (CHS + INT13h)
- ATA-2: Amplía a unidades de almacenamiento en general, no sólo discos.
- PIO y DMA más rápidos
- Gestión de energía
- Dispositivos extraíbles
- Soporte PCMCIA (PC Card, una especie de tarjeta de expansión de memoria)
- Se usa LBA de 28 bits (se empieza a soportar 137GB máx) pero la BIOS todavía podría limitar a 8,4GB.
- ATA-3: Revisiones menores.
- S.M.A.R.T para auto análisis e informes del estado de la unidad.
- LBA obligatorio
- Seguridad con contraseña
- ATA/ATAPI-4: Hace que las anteriores unidades de almacenamiento y las unidades CD-ROM, CD-RW, disquete, zip, cinta, etc se puedan conectar bajo una interfaz común.
- Agrega transferencia UDMA/33 (33MB/s)
- ATA/ATAPI-5: Duplica la velocidad de UDMA/33 (66MB/s).
- Cables de 80 hilos
- ATA/ATAPI-6: Reduce tiempos de configuración y aumenta la velocidad de reloj, por lo que esta especificación aumenta la velocidad de transferencia de Ultra-ATA a 100MB/s
- CHS se vuelve obsoleto
- LBA se extendió de 228 a 248 admitiendo discos de hasta 144.12PB.
- ATA/ATAPI-7: Transferencias UDMA de 133MB/s. Incluye SATA 1.0 como parte del estándar ATA-7
- ATA/ATAPI-8: Agrega las versiones SATA 2.x y 3.x.
- Reemplaza funciones largas de R/W
- Comando TRIM para SSD, para informar al SO que bloques no están en uso para borrarse y prepararse para W en el futuro.
Limitaciones de BIOS
Bios UEFI para arrancar desde unidades >2,2TB. El límite de 8,4GB viene del sistema CHS:
- Cylinders: 1024 máx (registro 10b)
- Heads: 255 máx (registro 8b)
- Sectors per track: 63 máx (registro 6b)
En total:
1024\times 255\times 63\times 512 \text{bytes}/\text{sector}=8,4GB
Conversión CHS/LBA y LBA/CHS
De CHS a LBA:
LBA=(((C\times HPC)+H)\times SPT)+S-1
De LBA a CHS:
C=int(LBA/SPT/HPC)
H=int((LBA/SPT)\mod HPC)
S=(LBA\mod SPT)+1
Donde:
- LBA: Logical Block Address
- C: Cylinder
- H: Head
- S: Sector
- HPC: Heads per cylinder
- SPT: Sectors per track
- int X: parte entera de X
- X mod Y: X%Y (resto de X/Y)
3. Barreras
Sectores de 512B típicos
528MB
Fue el límite de las BIOS con CHS 1024 cilindros, 16 cabezas, 63 sectores = 528 MB
2,1GB
BIOS que traducían hasta: 4096 cilindros, 16 cabezas y 63 sectores = 2,1 GB
4,2GB
BIOS que traducían hasta : 1024 cilindros, 256 cabezas virtuales, y 63 sectores = 4,2 GB
8,4GB
Límite del INT13h extendido de 24 bits
2^{24}=8,4~GB
137GB
Límite del LBA28: 2^{28} sectores = 137GB
Se crea LBA48 para solucionarlo (144.12 PB).
2,2TB
La limitación viene de que MBR (Master Boot Record) usa un campo de 32 bits para la cantidad de sectores. Se usa GPT, que usa 64 bits, para solucionarlo (9.4 ZB)
TEMA 6: Disco Duro
1. Introducción
Consiste en discos giratorios con cabezales que se mueven sobre los discos (aunque sin llegar a tocarlos) y almacenan datos en los sectores (trocitos) de las pistas (anillos concéntricos). Los sectores son normalmente de 512B o 4KB. Hace años giraban sobre 3600rpm aunque ahora las velocidades más usadas son de 5400rpm, 7200rpm, 10000rpm, 15000rpm.
2. Pistas y sectores
Los sectores se numeran empezando por 1 y las cabezas y cilindros empezando por 0. Por ejemplo, un disquete de 1.44MB contiene 80 cilindros (0-79) y dos cabezas (0,1) mientras que cada pista en cada cilindro tiene 18 sectores (1-18).
3. Formato y particiones
Hay dos tipos de formato, de bajo nivel (LLF) o de alto nivel (HLF). El comando FORMAT realiza el de alto nivel, el de bajo nivel se realiza en fábrica. Para realizar HLF, se requiere crear particiones (secciones del disco con una letra asignada, como C:). En resumen, los pasos son:
- Formateo LLF
- Particionado
- Formateo HLF
Distintos formatos de particiones
- FAT (File Assignation Table): Compatible con DOS y Windows 9x/Me. Admiten nombres de archivos de 11 caracteres como máximo (8 caracteres + 3 de extensión de archivo) en DOS y 255 caracteres en W9x o posterior. Se usan números de 12 o 16 bits para identificar grupos, lo que resulta en volúmenes máximos de 2GB.
- FAT32: Volumen único máximo de 2TiB y tamaño de archivo máximo de 4GB, ya que se usan 32 bits.
- exFAT: Volúmenes y archivos de 512TB.
- NTFS: Nombres de archivos de 256 caracteres y volúmenes y archivos de hasta 16EB teóricos.
4. Rendimiento y velocidad de transferencia
\begin{equation}
T_{ACCESO}=T_{BUSQUEDA}+latencia~~~~\text{ms}
\end{equation}
Tiempo de acceso: Es la cantidad de tiempo total promedio requerida para que la unidad acceda a un sector aleatorio.
\begin{equation}
T_{BUSQUEDA}=T_{DESPLAZAMIENTO}\times\frac{\text{nº pistas}}{2}+T_{ESTABILIZACION}
\end{equation}
\begin{equation}
\text{latencia}=\frac{T_{ROTACION}}{2}=\frac{\frac{1}{v_{ROTACION}}}{2}=\frac{0,5}{v_{ROTACION}}=\frac{0,5}{\frac{rpm}{60}}=\frac{30}{rpm}~~~\text{ms}
\end{equation}
Transferencia externa: velocidad a la que se pueden mover los datos entre la placa base y el buffer del disco. Transferencia interna: velocidad R/W del disco:
- Velocidad de rotación: rpm
- Densidad (sectores/pista):
\begin{equation} \frac{\text{nº bits sectores}}{2\pi\text{r}}=\frac{\frac{\text{nº sectores}}{\text{pista}}\times\text{512 B}\times\text{8 bits}}{2\pi\text{r}} \end{equation}
Finalmente, el Tiempo de R/W medio es:
\begin{equation}
T_{R/W}=T_{ACCESO}+T_{Tx}+T_{DRIVER}=\text{latencia}+T_{BUSQUEDA}+\frac{1}{v_{Tx} (B/s)}+T_{DRIVER}
\end{equation}




