ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

手把手教你学pcie--如何计算 BAR 大小

手把手教你学pcie--如何计算 BAR 大小

 


八、如何计算 BAR 大小(PCIe 最优雅的设计之一)

这是 PCIe / PCI 里一个非常经典的面试题,也是很多工程师第一次“被震撼”的地方:

系统居然不用问设备,就能知道它要多少地址空间?

答案是:

能,而且全靠 BAR 自己“说”。


一、先给结论(必背)

BAR 的大小,是通过“写 1 再读回”的方式探测出来的。

系统往 BAR 写入全 1,再读回来,

看哪些位“被硬件强制拉低为 0”,就能算出需要多大的空间。

📌这是硬件自我描述能力的典范


二、为什么这个方法可行?

BAR 的低位是有特殊含义的:

+--------------------------------------------------+ | 31 ............. n | n-1 ....... 4 | 3 | 2 | 1 | 0 | +--------------------+--------------+---+---+---+---+ | 可写地址位 | 固定 0 | P | T | R | 0 | +----------------
返回列表