level 10
foxxiaoyu
楼主
因为自己是zen2用户,很是好奇sam的兼容性问题。今天在Reddit上看到一个帖子,感觉至少对非zen3的Linux用户是重大利好的,有网友引用了Linux开发者之一的Alex Deucher的说法(他不仅仅是Linux显卡驱动的维护者还是AMD开源实验室的工程师,不是巧合吧_(┐ ◟ᐕ)¬_),Linux对SAM已经支持了。
按照这个引用,sam其实是pci总线时代的Linux驱动程序里面的内存映射io(mmio)。
我们稍稍回忆一点点汇编语言和架构知识,对于一般PCIe外周接口卡而言,他们的主存不是在内存空间的一部分,他们在内存空间中真正的位置是接口芯片的地址,所以CPU访问VRAM的路径是:CPU→接口卡内存空间地址→vram。
而mmio则去除了中间接口卡内存地址这一中转站,它在逻辑层扩展了内存地址空间,把vram和主存并列起来。但是这并没有侵占物理内存的使用。
我们使用mmio的限制不是重新刷写BIOS em和更换新架构CPU,而是操作系统在底层指令集调用上是否支持,以及你的用户计算机的最大可用主存还有剩余空间(对于32位计算机一共4GB,现在64位窝是不相信谁家PC这么厉害能给它占满_(:D)∠)_)。

2020年10月31日 03点10分
1
按照这个引用,sam其实是pci总线时代的Linux驱动程序里面的内存映射io(mmio)。
我们稍稍回忆一点点汇编语言和架构知识,对于一般PCIe外周接口卡而言,他们的主存不是在内存空间的一部分,他们在内存空间中真正的位置是接口芯片的地址,所以CPU访问VRAM的路径是:CPU→接口卡内存空间地址→vram。
而mmio则去除了中间接口卡内存地址这一中转站,它在逻辑层扩展了内存地址空间,把vram和主存并列起来。但是这并没有侵占物理内存的使用。
我们使用mmio的限制不是重新刷写BIOS em和更换新架构CPU,而是操作系统在底层指令集调用上是否支持,以及你的用户计算机的最大可用主存还有剩余空间(对于32位计算机一共4GB,现在64位窝是不相信谁家PC这么厉害能给它占满_(:D)∠)_)。

