Kumpi kuulostaa markkinointiosaston kalvoilla paremmalta:
a) AMD Smart Access memory
b) PCI Express Resizable BAR enabled
... aivan.
Perinteisesti näytönohjaimen muisti on mahdutettu 4GB:n muistiavaruuteen 256 MB:n ikkunana, jotta mahdollistetaan yhteensopivuus 32-bittisen käyttöjärjestelmien kanssa. 64-bittisen käyttöjärjestelmän kanssa tämä ei ole enää tarpeen, mutta yllättävän pitkään on kestänyt tästä eroon pääseminen.
Koneen käynnistyessä BIOS rakentaa kaikista PCI Express-laitteista "muistikartan" ja "ojentaa" sen käyttöjärjestelmän boot loaderille, jonka päälle käyttöjärjestelmä rakentaa koneen fyysisen muistiavaruuden. Käytännössä tuossa vaiheessa PCI Express-muistikartta on lukittu. Jos Resizable Bar ei ole BIOSin jäljiltä käytössä, ei sitä jälkikäteen saa päälle.... eli se 256 MB:n "ikkuna" VRAMiin on näyttöajurin vaivoina.
Paitsi: Palvelinlaitteet tukevat "PCI Hotplug"-ominaisuutta. Käytännössä kun PCI Hotplug-ominaisuutta käytetään, jäädytetään kaikki PCI Express-väylien liikenne hetkeksi ja muistikartta arvotaan uudelleen. Kaikki ajurit saavat käyttöjärjestelmältä uudet muistiavaruudet ja jatkavat toimintaansa tiedot saatuaan. Tämä on ymmärrettävästi aika monimutkainen toimenpide ja vaatii runsaasti ajureiden kehitysinvestointeja sekä validointia. Työasemalaitteissa tällaiselle ei löydy maksajaa ja muutoinkin kovin vähän käytännön hyötyä.
Eli käytännössä, jos BIOS ei tätä tue, ei Resizable BAR ole käytössä. Esimerkiksi omasta uusimmalla BIOSilla varustetusta Gigabyte X570 AORUS Elite-emolevystä löytyy BIOS-asetus "Above 4GB Decode", joka enabloi resizable BARin. En tiedä miten vanhasta BIOS-versiosta tuo löytyy, mutta tästä ainakin. En löytänyt käyttöjärjelmätasolta mitään keinoa varmistaa, että tuo on käytössä. Raudassa Resizable BAR on ollut tuettuna jo vuosikausia sekä AMD:llä että Intelillä, mutta käyttöönotto vaatii koko pinon tuen aina BIOSista asti.
Käyttöjärjestelmistä puheenollen:
Windows 10 on
tukenut Resizable BARia ensimmäisestä Windows 10-julkaisusta (2015) alkaen WDDM 2.0-rajapinnasta eteenpäin. Linux on
tukenut ominaisuutta 4.15-kernel-versiosta alkaen (2017).
Mutta kummankaan tuki ei auta, jollei BIOS tuota boottivaiheessa enabloi ja ajurit sitä tue. Linux-tuen on kirjoittanut AMD:n Christian König.
Ilman Resizable BARia näytönohjain joutuu jatkuvasti "veivaamaan" ikkunaa VRAMiin, joka on hyvin raskas toimenpide ja hidastaa näytönohjaimen muistinkäsittelyä huomattavasti - ja lisää latenssia. Tuon ominaisuuden käyttö tarjoaa näyttöajurille esteettömän pääsyn koko VRAMiin, mikä on huomattavasti tehokkaampi tapa käsitellä näytönohjaimen muistia. Ominaisuus aivan varmasti tehostaisi myös edellisen sukupolven näytönohjainten toimintaa, mutta mitä nopeammaksi ohjain (ja prosessori) tulee, sitä suurempi merkitys tämän puutteella on suorituskykyyn.
Tarkalleen ottaen Resizable BAR-tuki tuli Windows 10-version WDDM 2.0-rajapintaan 2015 ja on siitä lähtien ollut tuettu. Linuxiin se tuli kernel-versiosta 4.15 eteenpäin vuonna 2017. Eli Windowsissa tämä oli 2 vuotta aikaisemmin.
Infinity Cache ei liity mitenkään PCIE Resizable BARiin.
AMD ei kehitä tietokoneiden BIOSeja. Resizable BAR liittyy siihen, miten BIOS evaluoidessaan koneesta löytyviä PCI Express-laitteita ja rakentaessaan siitä muistikartaa toimii. BIOSin pitää kyetä tähän ja BIOSin pitää toteuttaa tämä oikein. AMD ei voi sitä tehdä (mutta toki kaikkien rautakomponenttienkin pitää sitä tukea).
Nyt ilmeisesti 500-sarjan emolevyissa AMD on edellyttänyt emolevyvalmistajia validoimaan toiminnon viimeistään uusimman AGESA V2 1.1.0.0-versiosta eteenpäin. Koska kaikki 500-sarjalaisten emot ovat vielä tuotannossa ja niille on markkinoita, löytyy emolevyvalmistajien talousosastolta ymmärrystä tämän toiminteen validoinnista uusimmille emolevyille.
Aivan sama on edessä Intelillä. Veikkaan, että Intel edellyttää emolevyvalmistajia tekemään Resizable BAR-toiminteen validoinnin Rocket Lake-yhteensopivista emolevyistä eteenpäin.