Pelaat nyt oletuksella, että Above 4G Decoding on sama asia.
Siitä keskusteltiin muutamissa ketjuissa, kuten mainitsit, mutta oletko varma että kaikki tieto oli oikeaa?
Pienen googlepyrähdyksen perusteella Above 4G Decoding avaa "Large BAR" tuen, mikä liittyy toki samaan asiaan kuin "Resizable BAR", mutta varmaa tietoa sen puolesta tarkoittaako tuki Large BAR:lle tukea Resizable BAR:lle ei tuntunut löytyvän mistään.
Kirjoitin tästä jo pari viikkoa sitten tarkahkon yhteenvedon. Ohessa tämä vielä uudelleen hieman päivitettynä.
Palataan hetkeksi vielä tuohon Resizable BAR / SAM-kuvioon.
Luin hieman Linuxin kernel-kehitykseen liittyvää keskustelua tästä ominaisuudesta. Keskustelusta sain tällaisen ymmärryksen:
Koneen käynnistyessä BIOS määrittelee miten paljon muistia PCI Root Bridge saa käyttöönsä. Oletuksena tuo muistiavaruus rakennetaan siten, että myös 32-bittiset käyttöjärjestelmät toimivat - eli kaikki sullotaan 4 GiBin sisään.
Tuo "Above 4 GB Decoding = Enabled" tai vastaava BIOS-asetus saa aikaan sen, että PCI Root Bridgelle varataan varmasti riittävä muistiavaruus, jotta näitä PCI Express-korttien muistiavaruuksia (tuntee nimellä BAR) voidaan vääntää isommaksi. Above 4 GB Decoding ei vielä itsessään tee mitään sen eteen, että PCI Express-väylään kytketty laite todella käyttäisi suurempaa muistia. Mutta jos BIOS ei tätä varausta tee, ei käyttöjärjestelmä voi asialle enää mitään, sillä prosessorin pään PCI-asetuksiin ei enää pääse käyttöjärjestelmä kiinni myöhemmin.
"Above 4GB Decoding" on siis edellytys Resizable Barin käytölle, koska ilman tätä ei PCI Root Bridgellä ole tarvittavaa muistiavaruutta käytössään ja mahdolliset Resizable BAR-pyynnöt epäonnistuvat liian pienen käytössä olevan muistiavaruuden vuoksi.
Ilmeisesti datacenter-käyttöön tarkoitetut näytönohjaimet sekä Nvidialta että AMD:ltä ovat omassa vBIOSissaan osanneet pyytää jo boottivaiheessa koko VRAMin verran muistia käyttöönsä jo vuosia. Näin ei kuitenkaan ole normaaleissa pelikäyttöön tarkoitetuissa ohjaimissa, jotka pyytävät vBIOSissa boottauksen aikana perinteisen 256 MiB:n ikkunan VRAMiin. Mutta kun käytössä on "Resizable BAR", voidaan BARin kokoa jälkikäteen muuttaa isommaksi, edellyttäen, että em. PCI Root Bridgen riittävä muistiallokaatio on tehty.
Käyttöjärjestelmätuki:
Linux
Linuxissa on ollut Resizable BAR-ominaisuus kernelistä 4.15 alkaen (loppuvuosi 2017). Työ alkoi vuonna 2015 (Christian König/AMD), mutta toimiva "Resizable BAR patch V9" tuli tuohon yllä mainittuun Linuxin versioon. Jos BIOS on varannut PCI Root Bridgelle riittävän suuren muistiavaruuden, voi näytönohjaimen ajuri pyytää kernelin tätä käyttöä varten AMD:n koodaaman funktion kautta BARin koon muutosta vastaamaan koko VRAMia. Ainakin AMD:n tuoreemmat ajurit osaavat tätä Linuxissa pyytää.
Eli jos BIOSista on kytketty "Above 4GB Decording" käyttöön ja näyttöajuri tukee tätä pyyntöä, osaa Linux suoraan käyttää Resizable BARia - AMD:n kanssa. Linuxin Resizable BAR-tuen on koodannut AMD tukemaan AMD-rautaa. En löytänyt mitään viitteitä siihen, että Intel olisi tehnyt saman omalle raudalleen.
Windows
Windowsissa on ollut tuki Resizable BAR-ominaisuudelle vuodesta 2015, eli ensimmäisestä Windows 10-versiosta alkaen WDDM 2.0-rajapinnasta eteenpäin.
Yhtä lailla Windows vaatii BIOSin "Above 4GB Decoding"-asetuksen päälle, muuten asialle ei voi mitään.
Nyt mennään vahvasti spekulaation puolelle, mutta ilmeisesti tavalliset näyttöajurit Nvidialla ja AMD:llä eivät ole tätä Resizable BAR-pyyntöä tehneet tähän mennessä. Ja nähtävästi datacenter-tuotteiden ajurit ovat sen tehneet. Eli AMD on nyt ensi kerran alkaen "AMD Radeon Software Driver 20.11.2"-versiosta alkaen koodannut myös resizable BAR-pyynnön omaan (ei-datacenter-tuotteen) näyttöajuriinsa.
Näkisin, ettei ole mitään teknistä estettä ettei tuo toiminne toimisi missä tahansa Intelin tai AMD:n emolevyssä, jossa vain tuo resizable BAR-tuki on BIOSissa. Rautatuki prosessoreissa noilla on ollut molemmilla jo vuosia. AMD:n osalta Resizable BAR on tuettu prosessorisukupolvesta "15h" eli Bulldozer / Piledriver / Steamroller / Excavator" eteenpäin.
Eli jos sinulla on vaikkapa jokin vanhempi Ryzen-emolevy "Above 4GB Decoding =Enabled"-asetuksella sekä AMD:n näyttöajuri versio 20.11.2 tai uudempi, pitäisi em. toiminne teknisesti toimia, jollei sitä ole tietoisesti AMD:n toimesta rajoitettu vain tiettyihin malleihin (eli Ryzen 5000-sarjaan ja RX 6000-sarjan näytönohjaimiin). Rajoituksen takana voi kaupallisten syiden lisäksi olla puutteellinen testaus; mikäli AMD sallii em. ominaisuuden ilman riittävää testausta eri kokoonpanoilla, voi tulla esille ikäviä yllätyksiä, jotka voisivat kääntyä AMD:n imagotappioksi. Eli välttämättä ei ole kyse pelkästään uusien laitteiden myyntiponnisteluista.
Em. asia päästään testaamaan kun 20.11.2-ajuriversio tulee ulos. Oletettavasti siinä on jo käyttöliittymässä jossain "SAM päälle/pois"-asetus, josta toiminnallisuuden päälläolon näkee.
PS. Oheisen artikkelin mukaan Resizable BARin käyttö vaatii myös sen, että BIOS on UEFI-moodissa ja CSM ei saa olla käytössä. CSM mahdollistaa tuen legacy-käyttöjärjestelmille, mikä samalla pakottaa yli 32-bittisen muistituen PCI Express Bridgeltä pois päältä (jolloin tietenkään Resizable BAR ei voi toimia):
Currently, there are many patches, new BIOS versions and various minor teething troubles with selected motherboard and CPU configurations, for example regarding the maximum achievable fabric clock…
www.igorslab.de