PCI协议的导读
?
PCI總線標(biāo)準(zhǔn)是intel在很早以前推出的一種連接主板和外部設(shè)備的總線標(biāo)準(zhǔn),全稱為[Peripheral Component Interconnect]。任何事物的出現(xiàn)總是有其時(shí)代性,在PC領(lǐng)域也不例外。PCI的出現(xiàn)也是因?yàn)楫?dāng)時(shí)PC的性能和設(shè)計(jì)成本的要求。PCI針對(duì)ISA總線,做了不少改進(jìn),具有不少的優(yōu)勢(shì)。
PCI槽在主板上是很容易找到的,一般都是乳白色的插槽,如下圖所示。不過(guò)現(xiàn)在市場(chǎng)上的主板基本都不在有PCI槽,或者有1個(gè)。目前均使用更高性能的、pci的下一代接口PCI-express。這都是后話了。
?
PCI總線的地址總線與數(shù)據(jù)總線是分時(shí)復(fù)用的,支持即插即用?(plug andplay)、中斷共享等功能。分時(shí)復(fù)用的好處是一方面可以節(jié)省接插件的引腳數(shù),另一方面便于實(shí)現(xiàn)突發(fā)數(shù)據(jù)傳輸。
?
比如即插即用和中斷共享這兩個(gè)特點(diǎn)就足以把ISA比下去了。
傳統(tǒng)的ISA設(shè)備在插入系統(tǒng)之后,需要調(diào)整BIOS來(lái)添加一些特定的配置,而且中斷也是獨(dú)享的,系統(tǒng)的irq用一個(gè)就少一個(gè);如果使用PCI總線,設(shè)備插入之后,BIOS會(huì)自動(dòng)根據(jù)pci卡的特性分配IO、MEM空間和IRQ,并且IRQ是可以在PCI設(shè)備中共享的。PCI架構(gòu)確實(shí)增加了系統(tǒng)的靈活性。
?
在帶寬方面PCI總線在當(dāng)時(shí)來(lái)說(shuō)也提高了很多,這才是最關(guān)鍵的優(yōu)勢(shì)了。
33.33?MHz時(shí)鐘?的同步傳輸;也有66MHz的擴(kuò)展時(shí)鐘頻率。
總線帶寬為32bit,當(dāng)然也有64bit的擴(kuò)展。
最大傳輸133?MB/s (133?megabytes per second) for 32-bit bus width(33.33?MHz × 32?bits ÷ 8?bits/byte = 133?MB/s)
對(duì)于64M的頻率來(lái)說(shuō),總線帶寬可以達(dá)到264MB/s。
32 或 64位的內(nèi)存位址
32位元 I/O port 空間
?
?
想要了解PCI的規(guī)范,最權(quán)威的資料要屬PCI Spec了。這些規(guī)范,包括PCIe,均是由美國(guó)的PCI-SIG協(xié)會(huì)(PCI特別興趣小組)來(lái)管理和更新。
總線規(guī)范中也列出來(lái)適宜閱讀的人群和工種。對(duì)于底層的軟件工程師BIOS來(lái)說(shuō),基本需要了解如下幾個(gè)章節(jié)。
Chapter 1 introduction ? ? ? ? 總線介紹
Chapter 2 Signal definition 信號(hào)定義
Chapter 3 Bus Operation ? ?總線操作
Chapter 6 configuration space 配置空間
?
當(dāng)然作為BIOS工程師來(lái)說(shuō),不僅僅是閱讀spec這么簡(jiǎn)單。解決問(wèn)題才是最終目的。spec的東西還是比較晦澀難懂的,屬于理論的層面,在具體的操作實(shí)踐中會(huì)完全就是兩回事了。
將會(huì)碰到的事情很多,比如:
1、? PCI device 配置空間的訪問(wèn)和配置方法和原則
2、? PCI 總線的遍歷
3、? PCI 設(shè)備的IRQ分配原則和方式
4、? PCI 分配memory /IO的原則和方式
5、? PCI Bridge 的概念和工作原理
最終的還是需要落實(shí)到一點(diǎn):看源代碼和spec。還是那句話Read the fuck source code!
總結(jié)
- 上一篇: vue项目中出现重复点击路由报错
- 下一篇: 三分钟看懂5G NSA和SA