XHCI,即可擴展的主機控制器接口,是英特爾公司開發的一個USB主機控制器接口。
基本介紹
- 中文名:可擴展的主機控制器接口
- 外文名:xhci
- 開發:英特爾公司
- 類型:USB主機控制器接口
基本信息,主要特性,
基本信息
XHCI(可擴展的主機控制器接口)
XHCI(eXtensible Host Controller Interface)可擴展的主機控制器接口是英特爾公司開發的一個USB主機控制器接口。它目前主要是面向USB 3.0的,同時它也支持USB 2.0及以下的設備。我們知道USB 2.0主要用的是EHCI,USB 1.1則是OHCI和UHCI。EHCI為了兼容USB 1.1,就將OHCI或UHCI之一集成進自己的規範里,這樣我們在設備管理器中就一般能同時看到兩種USB主機控制器存在,這種方式名叫Companion(夥伴)模式。
現在,xHCI將這種模式完全消除了,它不再和以前的主機控制器規範兼容,一個規範支持所有的USB協定。這樣帶來的好處多多,很多優點都是EHCI/OHCI/UHCI所沒有的或不敢想像的,比如:
1. 性能和能效方面能提供更高的效率,如系統空閒時能提供更低的功耗。
2. 保證設備級的編程模型與現有的USB軟體模型完全一致。這個很重要,相當於是只要替換掉原有的主機控制器和相應控制器驅動及匯流排驅動,其它的現有設備和驅動都不用作任何修改就可以直接拿來使用了。
3. 協定本身對USB規範的依賴不存在了,有作為一個通用主控器的潛質,不僅僅只被限制在USB規範上。
4. 減少對主機記憶體訪問次數,特別是在設備空閒時,完全不用訪問主機記憶體,這樣,功耗才可以做到更低。
5. 去掉了EHCI中的Companion(夥伴)模型,硬體方面估計拋掉了不少包袱,驅動複雜度也應該得到一定程度的降低。
6. 系統資源不足的情況下,還可以啟動出錯恢復模式,讓設備犧牲一些性能的情況下能繼續工作下去。
7. 靈活的硬體定製能力,針對不同的市場作出相應的裁剪。比如虛擬機支持部分就是可選的。
8. 可擴展性方面重新定義,面向未來,以後若有USB 4,預計也能應付,不需要再重新定義新的規範。
主要特性
所有USB 3.0特性的穩定支持。xHCI支持USB3.0的所有特性(廢話,它就是為USB3.0而生的,不完全支持它那支持誰)。其中包括新的USB 3.0特性,如異步事務和其它協定中的擴展特性。
支持所有的USB設備。支持所有速度的USB設備,包括:USB 2.0 低速、全速和高速設備,以及USB 1.1 低速和全速設備。
系統電源管理。USB3架構重點在省電這一塊提高了移動設備電池壽命。USB2 LPM(鏈路層電源管理)擴展也在xHCI中有支持。當系統空閒時減少電源消耗也是該協定重點關注對象。
為原有的USB主機控制器存在的問題提供簡單穩定的解決方案。xHCI規範提供了USB主機控制器中已經證明存在的各種問題的解決方案。其中的一些問題已經在規範中就已經解決了,包括:記憶體thrashing、記憶體訪問效率和與CPU電源管理之間的衝突等。xHCI在架構中提供了新的獨有的特性和最佳化措施來解決已有的問題。
最最佳化記憶體訪問效率。數據傳輸模型去除了以前主機控制器當中的基於記憶體的事務調度機制。它利用傳輸層的操作來減少執行USB操作所需的平均記憶體訪問次數。
減少硬體接口的複雜性。提供了一個簡單的接口來讓軟體為主機控制器提交參數化的傳輸請求,主機控制器利用它來執行USB事務。這個接口讓軟體可以在主機控制器在執行命令時異步地添加新的任務,從而避免了軟體需要採用各種同步機制。
支持32位和64位地址。在規範實行的生命期內,可以預見到的是xHCI主機控制器被用在超過32位地址記憶體空間的系統上的機會越來越多。xHCI內在支持多達64位的地址空間。
支持虛擬記憶體。所有的xHCI暫存器和數據結構都是被設計成支持coarse-grain Scatter/Gather的基於記憶體頁的虛擬記憶體架構。
支持fine-grain Scatter/Gather。這個接口為所有的數據傳輸支持硬體scatter/gather方法,可以被用來訪問虛擬記憶體頁,而且不受記憶體頁大小的限制。xHCI scatter/gather列表包括的緩衝區可以從任意位元組偏移處開始和任意位元組長度。這個特性可以讓xHCI scatter/gather機制在套用層使用,從而減少數據複製次數。