Artículos

Qué es Resizable BAR 2021

Qué es Resizable BAR, la tecnología que lleva años existiendo pero que no ha sido hasta los AMD Ryzen 5000 que se ha empezado a utilizar

Recientemente AMD ha implementado la tecnología Smart Access Memory (AMD SAM) en sus gráficas Radeon RX 6000 y en sus procesadores Ryzen 5000. Pero no es una tecnología nueva, ya que se basa en el estándar abierto Resizable BAR incluido por parte de PCI-SIG en el estándar PCIe 3.0 en 2008. Aquí te explicamos que es Resizable BAR, cómo funciona y que nos aporta esta ‘nueva’ tecnología.

Introducción

Las tarjetas gráficas normalmente tiene una limitación de cantidad de VRAM que es accesible por el procesador. El límite es de 256MB de memoria VRAM para el búfer que funciona bajo el bus PCI.

Bajo el límite de los 256MB, el firmware de la GPU y el sistema operativo establecían el uso de la misma. Un espacio de memoria VRAM que se dejaba a libre acceso del procesador.

Fue el 22 de enero de 2008 cuando se propuso la capacidad Resizable BAR, que se admitiría el 24 de abril de 2008. Esta tecnología está integrada dentro del estándar PCI Express 3.0.

Mediante esta tecnología se permite que el procesador pueda acceder a toda la memoria VRAM. La única restricción la impone la GPU y la cantidad de VRAM que necesite para cargar texturas y otros elementos.

Como anécdota, quienes propusieron esta solución fueron Hewlett-Packard y Advanced Micro Devices, vamos, HP y AMD. Ambas compañías fueron las que presentaron la idea ante PCI-SIG, quien gestiona el estándar PCI Express.


Qué es Resizable BAR

Bajo el bus físico PCI Express, se genera un túnel virtual entre la tarjeta gráfica y el procesador. Esto permite al procesador acceder a la memoria VRAM de manera directa y cómoda.

Así se implementa un sistema por el cual se le permite al procesador acceder a toda la memoria VRAM de la tarjeta gráfica. Anteriormente se establecía un límite de 256MB accesibles al procesador, que se debía negociar entre la GPU y el sistema operativo.


Cómo funciona Resizable BAR

El controlador en modo kernel, mediante un proceso en segundo plano, redimensiona el tamaño de VRAM accesible a todo el tamaño de memoria de la gráfica. Un proceso que se establece no tenga impacto en la imagen mostrada en pantalla.

Una vez determinada la cantidad de VRAM en la gráfica, se indica cuanta puede ser accesible por el procesador. Aunque toda será accesible por el procesador, la gráfica se guarda siempre la prioridad de uso. Para simplificar el acceso al procesador, se generan una serie de direcciones virtuales para la CPU.

Cuando se modifica el tamaño correctamente, el controlador en modo kernel debe exponer un único segmento de memoria denominado CPUvisible al administrador de la VRAM. El administrador de la VRAM asigna las direcciones virtuales de la CPU directamente en un rango, siendo accesible la memoria según las necesidades.


Qué ventaja ofrece esta tecnología

El procesador en gaming realiza ciertas tareas de computación necesarias para la ejecución del juego. No todo lo hace la GPU. Hasta la fecha el procesador podía cargar hasta 256MB en la VRAM y el resto iba a la memoria RAM del sistema.

Cuando la GPU requiere la información almacenada en la RAM, le tiene que decir al procesador que necesita ‘x’ cálculo. El procesador va a buscarlo y se lo entrega a la GPU. Un proceso que requiere un tiempo determinado, o lo que es lo mismo, se genera una latencia.

Mediante Resizable BAR, todas las tareas realizadas por el procesador se almacenan en la VRAM. El procesador carga los datos en la VRAM y le indica que posición se encuentran estos datos. Así la GPU los tiene accesibles en todo momento cuando esta los necesite. Por lo tanto, eliminamos la latencia generada de pedir el cálculo al procesador, que esté la busque en la RAM y que se la entregue a la GPU.

Para el usuario esto se traduce en una mejora de rendimiento. Es probable que poco a poco su importancia e impacto en el rendimiento crezca a medida que se mejora su implementación. Actualmente la mejora de rendimiento oscila en el 10% para el mejor de los casos.


Nombres que recibe Resizable BAR

Esta tecnología es reconocida por parte de PCI-SIG como Resizable BAR. Aunque ha sido rebautizada varias veces:

  • AMD Smart Access Memory: Durante la presentación de las gráficas RX 6000 Series, la compañía menciona esta tecnología. Posteriormente se ha sabido que solo es una denominación comercial de Resizable BAR
  • ASRock Clever Access Memory: El fabricante de placas base ha decidido cambiar el nombre de esta tecnología en sus placas base.

Soporte de Resizable BAR por parte de fabricantes de placas base

Los fabricantes de placas base están añadiendo soporte a esta tecnología. Este soporte es una habilitación en BIOS mediante una actualización de firmware.


MSI

Se ha convertido en la pionera en adopción de Resizable BAR en sud diferentes gamas de productos. Inicialmente iban a dar soporte solo en placas base de chipset Intel 400 Series, pero han anunciado soporte en más chipsets. Concretamente se implementará en placas base con chipset Intel 300 Series (9a Gen), AMD TRX40 (Threadripper) y AMD 400 Series (Ryzen 3000)


ASRock

Qué sepamos solo llevarán Resizable BAR a sus placas base con chipset X570 y B550. Posiblemente estén trabajando en habilitarlo en otras placas base.


Gigabyte

Placas base con chipset X570, B550 y A520 de Gigabyte ya soportan Resizable BAR mediante actualización de BIOS. De momento no tenemos constancia que soporte esta tecnología en otras placas base.


ASUS

No tenemos constancia de soporte de Resizable BAR en diferentes chipsets de las placas base ASUS. Hace algunos días instalaron un procesador Ryzen de 1ª Generación en una placa base ASUS con chipset B450 y consiguieron habilitar Resizable BAR.


Smart Access Memory de AMD o AMD SAM

Como hemos visto, esta característica está disponible desde 2008, aunque no se había utilizado, que sepamos, esta las AMD RX 6000. La compañía da por primera vez soporte a esta tecnología en las gráficas Radeon RX 6000 y los procesadores Ryzen 5000 instalados en placas base con chipset AMD 400 Series y AMD 500 Series. Destacar que AMD ha indicado que las placas base de chipset AMD 300 Series no soportarán esta tecnología.

Cuál es la diferencia entre AMD SAM y Resizable BAR

NINGUNA. Realmente AMD solo ha habilitado esta tecnología disponible desde hace más de una década. Simplemente lo que han hecho soportar esta tecnología y darle un nombre más comercial.


Cuanto tiempo lleva AMD trabajando en SAM

Investigando esta tecnología nos hemos encontrado con algo bastante curioso. Nos hemos topado con un mensaje Christian Konig en Phoronix que data de 2015, donde indica que es y una persona identificada como Alex son «mantenedores de los drivers del núcleo Radeon y Amdgpu para el hardware de gráficos de AMD».

Christian Konig es un desarrollador Open Source que trabaja para AMD y que sería el responsable del soporte de audio para HDMI en las Radeon HD en los drivers de código abierto de la compañía.

Dentro de dicho mensaje indica que «la nueva generación de hardware ha empezado a soportar Resizable BAR». Esto indiciaría que posiblemente la arquitectura AMD Vega ya soportaba esta tecnología.

Konig incluso indica que «esta tecnología funciona sorprendentemente bien, siendo el único problema que no hay prácticamente ningún sistema que lo implemente». Incluso indica que el motivo podría ser porque el puente raíz PCI no cuentan con suficiente espacio de direcciones asignables en la BIOS para esto y el subsistema PCI en el núcleo no puede reprogramarlo.


Soporte por parte de Intel

Durante el CES 2021 se presentaron oficialmente los procesadores Intel Tiger Lake H35. Estos procesadores destinados a equipos portátiles basados en la litografía de 10nm son los primeros en soportar Resizable BAR oficialmente por parte Intel. Teóricamente los procesadores Intel Rocket Lake-S para sobremesa también soportarán esta tecnología, aunque no está confirmado.

Cuanto menos es interesante que hayan pasado 7 años para soportar oficialmente esta tecnología. La arquitectura Haswell lanzada en 2013 ya contaba con soporte para Resizable BAR.

Curiosamente investigando el tema nos hemos encontrado con presentaciones de 2009 donde Intel ya mencionaba Resizable BAR. Mahesh Wagh, IO Architect de Intel menciona esta tecnología en su presentación en el IDF 2009. Jasmin Ajanovic, Ingeniera Principal en Intel menciona esta tecnología en su presentación en la HotChips de 2009.


Soporte por parte de NVIDIA

La compañía durante el CES 2020 ha presentado las tarjetas gráficas RTX 30 Mobile y las RTX 3060. Durante la presentación ha confirmado que las gráficas RTX 3080 Mobile, RTX 3070 Mobile y RTX 3060 Mobile soportarán Resizable BAR.

Aunque si bien en la RTX 3060 para sobremesa no se ha confirmado, también será soportada. Es posible que en futuros drivers NVIDIA habilite Resizable BAR en todas sus tarjetas gráficas de arquitectura Ampere (RTX 3000). Hay más dudas sobre la habilitación en las gráficas de arquitectura Pascal (RTX 2000)

Fuentes: Mahesh Wagh | Jasmin Ajanovic | PCI-SIG | Microsoft | Linux | Christian König | SAM

Mostrar más

Roberto Solé

Director de Contenidos y Redacción de esta misma web, técnico en sistemas de generación de energía renovables y técnico electricista de baja tensión. Trabajo delante de un PC, en mi tiempo libre estoy delante de un PC y cuando salgo de casa estoy pegado a la pantalla de mi smartphone. Cada mañana cuando me levanto cruzo el Stargate para hacerme un café y empezar a ver vídeos de YouTube. Una vez vi un dragón... ¿o era un Dragonite?

Publicaciones relacionadas

4 comentarios

  1. Doesn’t this already work with AMD CPU’s with Nvidia? My new BIOS update notes it includes support for Resizable BAR with Nvidia GPUs.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba