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