Recently AMD has implemented Smart Access Memory (AMD SAM) technology in its Radeon RX 6000 graphics and its Ryzen 5000 processors. But it is not a new technology, as it is based on the Resizable BAR open standard included by PCI-SIG in PCIe 3.0 standard in 2008. Here we explain what Resizable BAR is, how it works and what this 'new' technology brings us.
Graphics cards usually have a limitation of amount of VRAM that is accessible by the processor. He limit is 256MB of VRAM memory for the buffer running under the PCI bus.
Under the 256MB limit, the GPU firmware and operating system dictated its use. A VRAM memory space that was left to the processor's free access.
It was on January 22, 2008 when the capacity was proposed Resizable BAR, which would be admitted on April 24, 2008. This technology is integrated within the PCI Express 3.0 standard.
This technology allows the processor can access all the VRAM memory. The only restriction is imposed by the GPU and the amount of VRAM you need to load textures and other elements.
As an anecdote, who proposed this solution were Hewlett-Packard and Advanced Micro Devices, come on, HP and AMD. Both companies were the ones that presented the idea to PCI-SIG, who manages the PCI Express standard.
What is Resizable BAR
Under the PCI Express physical bus, a virtual tunnel is generated between the graphics card and the processor. This allows the processor to access the VRAM memory directly and conveniently.
This is how a system is implemented by which the processor is allowed to access all the VRAM memory of the graphics card. Previously, a limit of 256MB accessible to the processor was established, which had to be negotiated between the GPU and the operating system.
How Resizable BAR works
El kernel mode driver, through a background process, resize accessible VRAM size to the entire memory size of the graph. A process that is set has no impact on the image displayed on the screen.
Once the amount of VRAM on the graph has been determined, it is indicated how much can be accessible by the processor. Although all will be accessible by the processor, the graph is always saved the priority of use. To simplify access to the processor, a series of virtual addresses are generated for the CPU.
When successfully resized, the kernel-mode driver should expose a single memory segment named CPUvisible to the VRAM manager. The VRAM manager assigns the virtual addresses of the CPU directly in a range, the memory being accessible as needed.
What advantage does this technology offer
The processor in gaming performs certain computing tasks necessary for the execution of the game. Not everything is done by the GPU. To date the processor could load up to 256MB in VRAM and the rest went to the system RAM.
When the GPU requires the information stored in RAM, it has to tell the processor that it needs 'x' computation. The processor fetches it and hands it over to the GPU. A process that requires a certain time, or what is the same, generates a latency.
Using Resizable BAR, all Tasks performed by the processor are stored in the VRAM. The processor loads the data into the VRAM and tells you where this data is. So the GPU has them accessible at all times when it needs them. Therefore, we eliminate the latency generated by asking the processor for the calculation, to look for it in RAM and to deliver it to the GPU.
For the user, this translates into improved performance. Its importance and impact on performance is likely to gradually grow as its implementation improves. Currently the performance improvement hovers around 10% for the best case.
Names that Resizable BAR receives
This technology is recognized by PCI-SIG as Resizable BAR. Although it has been renamed several times:
- AMD Smart Access Memory: During the presentation of the RX 6000 Series graphics, the company mentions this technology. Later it has been known that it is only a commercial name of Resizable BAR
- ASRock Clever Access Memory: The motherboard manufacturer has decided to change the name of this technology on their motherboards.
Resizable BAR support by motherboard manufacturers
Motherboard manufacturers are adding support for this technology. This bracket is a enable in BIOS via a firmware update.
It has become the pioneer in adoption of Resizable BAR in sud different ranges of products. Initially they were going to support only in Intel 400 Series chipset motherboards, but they have announced support on more chipsets. Specifically, it will be implemented in motherboards with Intel 300 Series (9th Gen), AMD TRX40 (Threadripper) and AMD 400 Series (Ryzen 3000) chipset
What do we know They will only bring Resizable BAR to their motherboards with X570 and B550 chipset. They may be working on enabling it on other motherboards.
Gigabyte X570, B550 and A520 chipset motherboards already support Resizable BAR via BIOS update. At the moment we have no evidence that this technology supports other motherboards.
We are not aware of Resizable BAR support on different ASUS motherboard chipsets. A few days ago they installed a 1st Gen Ryzen processor on an ASUS motherboard with B450 chipset and managed to enable Resizable BAR.
Smart Access Memory from AMD or AMD SAM
As we have seen, this feature has been available since 2008, although it had not been used, to our knowledge, this is the AMD RX 6000. The company supports this technology for the first time in the Radeon RX 6000 graphics and Ryzen 5000 processors installed on motherboards with AMD 400 Series and AMD 500 Series chipset. Note that AMD has indicated that AMD 300 Series chipset motherboards will not support this technology.
What is the difference between AMD SAM and Resizable BAR
NONE. AMD has only really enabled this available technology for more than a decade. Simply what they have made support this technology and give it a more commercial name.
How long has AMD been working on SAM
Investigating this technology we have come across something quite curious. We have come across a message Christian Konig on Phoronix dating from 2015, where he states that he is and a person identified as Alex are "maintainers of the Radeon and Amdgpu kernel drivers for AMD graphics hardware."
Christian Konig is an Open Source developer who works for AMD and who would be responsible for the audio support for HDMI in Radeon HD in the company's open source drivers.
Within said message indicates that "The new generation of hardware has started to support Resizable BAR." This would indicate that possibly the AMD Vega architecture already supported this technology.
Konig even indicates that "This technology works surprisingly well, the only problem being that there is practically no system that implements it". It even indicates that the reason could be because the PCI root bridge does not have enough assignable address space in the BIOS for this and the PCI subsystem in the kernel cannot reprogram it.
Support from Intel
During CES 2021, the Intel Tiger Lake H35 processors. These processors intended for portable computers based on 10nm lithography are the first to Support Resizable BAR officially by Intel. Theoretically Intel Rocket Lake-S desktop processors will also support this technology, although it is not confirmed.
The less it is interesting that 7 years have passed to officially support this technology. The Haswell architecture released in 2013 already had support for Resizable BAR.
Curiously investigating the subject we have come across presentations from 2009 where Intel already mentioned Resizable BAR. Mahesh Wagh, Intel IO Architect mentions this technology in its presentation in the IDF 2009. Jasmin Ajanovic, Principal Engineer at Intel mentions this technology in its presentation in the 2009 HotChips.
Support from NVIDIA
The company during CES 2020 has presented the RTX 30 Mobile and RTX 306 graphics cards0. During the presentation you confirmed that the RTX 3080 Mobile, RTX 3070 Mobile and RTX 3060 Mobile graphics will support Resizable BAR.
Although although in the RTX 3060 for desktop has not been confirmed, it will also be supported. It is possible that in future NVIDIA drivers enable Resizable BAR on all your Ampere architecture graphics cards (RTX 3000). There are more doubts about the enablement in Pascal architecture graphics (RTX 2000)