Above 4G Decoding es una opción de bajo nivel de la BIOS para asignación de recursos PCIe. Aparece con frecuencia al ajustar NAS, mini PC, estaciones de trabajo, sistemas multi-GPU, routers, tarjetas HBA / SATA y máquinas locales de IA.
En términos simples, permite que un sistema de 64 bits asigne el espacio de direcciones MMIO requerido por dispositivos PCIe por encima del rango físico de 4GB.
Suena muy bajo nivel, pero el problema es real: cuando una placa tiene GPU, NVMe, NIC, tarjeta SATA, capturadora, HBA y otros dispositivos PCIe, obligarlos a competir por espacio de direcciones por debajo de 4GB puede causar fallos de asignación de recursos, dispositivos que no aparecen o incluso bloqueos al arrancar.
Por qué existe el límite de 4GB
El límite de 4GB es una herencia histórica de la era de 32 bits.
Un espacio de direcciones de 32 bits puede direccionar como máximo:
|
|
Los equipos modernos usan CPU y sistemas operativos de 64 bits, y es normal tener 16GB, 32GB, 64GB o más memoria. Pero durante POST e inicialización de dispositivos PCIe, la placa sigue teniendo en cuenta supuestos de compatibilidad antiguos. Muchas asignaciones de recursos PCIe se colocan inicialmente por debajo de 4GB.
El problema es que el espacio por debajo de 4GB no es solo para RAM. El sistema debe reservar parte de él para hardware.
Ahí entra MMIO.
Qué es MMIO
MMIO significa Memory-Mapped I/O.
La CPU no puede acceder directamente a los registros o ventanas de memoria de un dispositivo PCIe como si fueran RAM normal. En su lugar, una parte de los registros, buffers o ventana de VRAM del dispositivo se mapea dentro del espacio de direcciones del sistema. Cuando la CPU lee o escribe ese rango, en realidad está comunicándose con el dispositivo PCIe.
De forma aproximada:
- El dispositivo necesita un rango de direcciones.
- La placa le asigna un rango físico del sistema.
- Cuando la CPU accede a ese rango, accede al dispositivo PCIe.
Esa región mapeada no es RAM ordinaria. Es una ventana de direcciones ocupada por hardware.
En configuraciones antiguas por defecto, muchas regiones MMIO de dispositivos se limitan por debajo de 4GB, a menudo cerca del rango de 3GB a 4GB. Con pocos dispositivos suele funcionar, pero con más dispositivos se llena.
Qué es BAR
Cada dispositivo PCIe usa BAR para indicar a la placa cuánto espacio de direcciones necesita.
BAR significa Base Address Register. Su función es decir:
|
|
GPU, NVMe, controladoras SATA, NIC, HBA y tarjetas USB pueden necesitar espacio BAR. Cuantos más dispositivos, más ventanas de direcciones. Las GPU pueden necesitar mapeos especialmente grandes.
Si no hay suficiente espacio MMIO disponible por debajo de 4GB, la placa puede no poder asignar recursos a dispositivos que se inicializan más tarde.
Qué puede pasar si no se activa
Cuando Above 4G Decoding está desactivado, la placa tiende a empaquetar los recursos PCIe por debajo del límite de 4GB. Con pocos dispositivos no se nota. Con muchos, pueden aparecer problemas.
Escenarios comunes:
- Una GPU dedicada.
- Uno o más SSD NVMe.
- Una tarjeta SATA JMB585 / ASM1166.
- Una NIC 2.5G / 10G.
- Un módulo Wi-Fi / Bluetooth.
- HBA, capturadoras o tarjetas USB adicionales.
Todos estos dispositivos solicitan espacio BAR / MMIO a la placa. Si la región por debajo de 4GB se llena, pueden aparecer:
- Una tarjeta PCIe no se reconoce.
- El dispositivo no aparece en BIOS.
- Linux / Windows muestra dispositivos ausentes o errores de recursos.
- Bloqueo durante POST.
- Pantalla negra o cursor parpadeando.
- Cada tarjeta funciona sola, pero el sistema falla con varias instaladas.
En escenarios con tarjetas SATA JMB585, muchos usuarios ven que la placa se queda bloqueada antes de BIOS, o que la tarjeta desaparece tras añadir NVMe o NIC. Además de Option ROM, CSM y velocidad PCIe Gen, la asignación de espacio de direcciones PCIe también merece revisión.
Qué cambia al activar Above 4G Decoding
Se activa:
|
|
Esto indica a la placa que puede asignar recursos MMIO de dispositivos PCIe con direccionamiento de 64 bits por encima de 4GB.
Así, los dispositivos PCIe ya no necesitan pelear por la pequeña región bajo 4GB. La placa puede colocar algunos mapeos BAR / MMIO en direcciones más altas, reduciendo conflictos de recursos.
En sistemas modernos de 64 bits suele ser una configuración razonable, especialmente en:
- NAS con muchos discos.
- Routers con varias NIC.
- Mini PC con tarjetas SATA / HBA.
- Estaciones de trabajo multi-GPU.
- Máquinas de inferencia o entrenamiento de IA.
- Sobremesa con GPU, NVMe, capturadora y tarjetas de expansión.
Su objetivo no es mejorar el rendimiento normal de aplicaciones, sino dar más margen a la asignación de recursos de hardware.
Relación con JMB585 / tarjetas SATA
Una tarjeta SATA tipo JMB585 no necesariamente necesita un MMIO enorme por sí sola. El problema no suele ser cuánto necesita esa tarjeta sola, sino cómo compiten todos los dispositivos PCIe del sistema por el espacio de direcciones.
Por ejemplo, un mini PC puede tener:
- Un NVMe como disco del sistema.
- Una NIC integrada.
- Un módulo Wi-Fi.
- Una tarjeta SATA JMB585 de cinco puertos.
- Quizá una GPU dedicada u otro controlador.
Si la BIOS asigna recursos de forma conservadora, JMB585 puede ser uno de los últimos dispositivos inicializados. Los dispositivos anteriores ya han consumido mucho espacio bajo 4GB. Cuando JMB585 solicita BAR, la placa puede fallar o entrar en un estado anómalo.
Activar Above 4G Decoding permite colocar parte de los recursos de dispositivos por encima de 4GB y reduce la probabilidad de conflicto.
No repara una tarjeta defectuosa ni soluciona todos los problemas de entrenamiento PCIe, pero merece mucho la pena cuando los fallos aparecen solo al instalar varios dispositivos.
Relación con Resizable BAR / SAM
Mucha gente ve Above 4G Decoding por primera vez al configurar funciones de rendimiento de GPU, como:
Resizable BARRe-Size BARReBARSmart Access MemorySAM
Están relacionados, pero no son lo mismo.
Above 4G Decoding es la base. Permite asignar recursos MMIO de dispositivos PCIe por encima de 4GB.
Resizable BAR es una capacidad adicional. Tradicionalmente, aunque la CPU pudiera acceder a la VRAM de la GPU, lo hacía mediante ventanas pequeñas, por ejemplo de 256MB. Con ReBAR, la CPU puede mapear una porción mayor de la VRAM de la GPU de una vez, reduciendo en teoría el coste de cambiar ventanas de acceso.
Muchas placas exigen activar Above 4G Decoding antes de poder activar Resizable BAR. Así que:
Above 4G Decoding: permite direcciones de dispositivo por encima de 4GB.Resizable BAR/SAM: permite que la ventana BAR de la GPU sea mayor.
Para NAS y tarjetas SATA, lo importante suele ser el espacio de direcciones PCIe que proporciona la primera opción, no ReBAR en sí.
Efectos secundarios
En sistemas modernos de 64 bits como Windows, Linux, Ubuntu, Debian, TrueNAS o Proxmox, activar Above 4G Decoding normalmente no tiene efectos negativos evidentes.
Pero conviene recordar:
- Sistemas operativos de 32 bits muy antiguos pueden no ser adecuados.
- Algunas BIOS muy antiguas o dispositivos PCIe antiguos pueden tener problemas de compatibilidad.
- Si el sistema no arranca tras cambiar BIOS, limpia CMOS o restaura valores por defecto.
- Si también activas ReBAR / SAM, verifica que GPU, placa, sistema y driver lo soportan.
En hardware moderno con sistemas de 64 bits, suele ser una configuración de bajo nivel recomendable, especialmente con muchos dispositivos.
Cuándo conviene activarlo
Considera activar Above 4G Decoding si:
- Usas un sistema operativo de 64 bits.
- Hay varios dispositivos PCIe instalados.
- Tienes GPU dedicada, especialmente con 4GB o más VRAM.
- Usas JMB585, ASM1166, HBA, RAID, capturadora u otras tarjetas de expansión.
- Montas un NAS con muchos discos o un router.
- Usas multi-GPU, aceleradores de IA o hardware local para LLM.
- Instalar una tarjeta PCIe causa bloqueo de arranque, pantalla negra o cursor parpadeando.
- Cada dispositivo funciona solo, pero las combinaciones fallan.
Si diagnosticas una tarjeta SATA JMB585 que congela POST, revísalo junto con:
- Desactivar
CSM. - Desactivar
Storage OpROMinnecesario. - Cambiar PCIe speed de
AutooGen3aGen2. - Activar
Above 4G Decoding. - Probar otra ranura PCIe.
Cómo aparece en BIOS
Los fabricantes usan nombres ligeramente distintos. Algunos comunes:
|
|
Ubicaciones habituales:
AdvancedPCIe SettingsPCI Subsystem SettingsChipsetNorth BridgeIO PortsBoot
Algunas placas lo ponen junto a Resizable BAR; otras lo esconden en opciones avanzadas de PCIe o chipset.
Resumen
La función central de Above 4G Decoding es permitir que la placa asigne espacio de direcciones MMIO / BAR de dispositivos PCIe por encima de 4GB. No arregla drivers; trata problemas de espacio de direcciones en la capa BIOS / PCIe.
En un PC sencillo con pocos dispositivos puede parecer invisible. En un NAS con muchos discos, router con varias NIC, mini PC con JMB585 / ASM1166, estación multi-GPU o máquina local de IA, puede ser importante.
Si al instalar una tarjeta PCIe aparecen bloqueos en BIOS, pantalla negra, cursor parpadeando, dispositivo ausente o fallos solo cuando hay varios dispositivos juntos, Above 4G Decoding = Enabled es una opción BIOS que conviene revisar pronto. No es una solución universal, pero ayuda a que el hardware moderno de 64 bits escape de la vieja limitación del espacio por debajo de 4GB y reduce conflictos de recursos PCIe.