前言本文主要講述PCIe熱插拔機(jī)制,通過(guò)圖形方式方便讀者快速掌握。
一、概述
如果在PCIe設(shè)備不支持熱插拔的條件下,在不斷電的情況下插拔一塊PCIe SSD時(shí),很可能會(huì)對(duì)主板或PCIe插槽造成損毀。
為了防止意外的發(fā)生,PCIe Spec設(shè)計(jì)了一種“No Surprise”熱插拔機(jī)制,即,當(dāng)用戶要插拔PCIe設(shè)備時(shí),必須先通知系統(tǒng)軟件做好準(zhǔn)備,然后通過(guò)指示燈告知用戶熱插拔的狀態(tài)。
二、原理詳解
2.1 熱插拔原理總結(jié)
PCIe總線的熱插拔主要指的是PCIe卡設(shè)備的熱插拔以及相關(guān)的實(shí)現(xiàn)機(jī)制等。
如圖所示,上方部分PCIe卡有兩個(gè)用于熱插拔機(jī)制的引腳——PRSNT1#和PRSNT2#。PCIe卡設(shè)備上的這兩個(gè)信號(hào)之間是短路的,下方部分PCIe插槽的PRSNT1#被固定地連接到地,PRSNT2#則被上拉。且PCIe卡上的這兩個(gè)信號(hào)的金手指長(zhǎng)度要比其他的信號(hào)的金手指長(zhǎng)度要短一點(diǎn)。當(dāng)PCIe卡設(shè)備未被完全插入插槽時(shí),插槽的PRSNT2#信號(hào)由于上拉的作用,將一直處于高電平狀態(tài)。當(dāng)PCIe卡設(shè)備被完全插入插槽后,PRSNT1#與插槽上接地的PRSNT1#連接,同時(shí)插槽上的PRSNT2#信號(hào)則會(huì)被PCIe卡設(shè)備的短路線連接到地,從而使得其變?yōu)榈碗娖?。換句話說(shuō),從插槽的角度看,當(dāng)PRSNT2#位高電平時(shí),則認(rèn)為PCIe卡設(shè)備未能正確插入或者無(wú)PCIe卡設(shè)備;當(dāng)PRSNT2#位低電平時(shí),表明PCIe卡設(shè)備被正確地插入插槽中。
2.2 熱插拔軟硬件要求
熱插拔不僅僅是硬件的事,其需要軟硬件協(xié)同實(shí)現(xiàn)。要想實(shí)現(xiàn)熱插拔功能,操作系統(tǒng)、主板熱插拔驅(qū)動(dòng)器、PCIe卡設(shè)備驅(qū)動(dòng)以及PCIe卡硬件功能都必須支持熱插拔,缺一不可。從PCIe卡設(shè)備硬件功能的角度來(lái)看,其需要支持Quiesce命令、Pause命令(可選)、Start命令和Resume命令。
PCIe環(huán)境下的熱插拔需要軟件與硬件的通力合作。紅色框內(nèi)屬于軟件方面的需求,綠色框內(nèi)是硬件方面的需求。
軟件方面主要包括:
1、User Interface: 這部分由系統(tǒng)OS提供。主要允許用戶可以請(qǐng)求插拔PCIe設(shè)備。
2、Hot-Plug Service: 這部分也是由系統(tǒng)OS提供。主要負(fù)責(zé)處理用戶插拔PCIe設(shè)備的請(qǐng)求。
3、Standardized Hot Plug System Driver: 這部分驅(qū)動(dòng)可以由系統(tǒng)OS或者主板提供。
4、Device Driver: 這部分主要有適配卡提供。
硬件方面主要包括:
1、Hot-Plug Controller: 主要負(fù)責(zé)接收和處理來(lái)自Hot Plug System Driver的指令。
2、Card Slot Power Switching Logic: 主要被Hot Plug Controller控制,用于turn-on/off電源。
3、Card Reset Logic: 按照Hot-plug System Driver的指示,Hot Plug Controller向需要插拔PCIe設(shè)備的插槽(Slot)傳送PERST#信號(hào)。
4、Power Indicator: 主要負(fù)責(zé)指示設(shè)備連接器上面的電源狀態(tài)。
5、Attention Indicator: 這個(gè)是警示燈,提醒用戶熱插拔失敗狀態(tài),所以一般情況下處于關(guān)閉狀態(tài)。
6、Card Present Detect Pins: PCIe設(shè)計(jì)了兩個(gè)用于檢測(cè)PCIe設(shè)備是否存在的信號(hào)PRSNT1#和PRSNT2#。PRSNT#1接地,當(dāng)PCIe設(shè)備存在時(shí),PRSNT#2拉高。
橋設(shè)備(Switch等)中還需要支持熱插拔控制器(Hot Plug Controller)。
注:PCIe總線除了有一個(gè)Base Spec之外,還有一個(gè)關(guān)于PCIe卡設(shè)備的Spec——PCIe Card ElectroMechanical Spec(CEM)。
與PCI總線不同,PCIe總線采用的是點(diǎn)到點(diǎn)的連接(Point-to-Point Connections),因此其并不像PCI總線那樣需要用于卡設(shè)備的隔離邏輯(Isolation Logic),但是每個(gè)端口(橋設(shè)備中的,如Root和Switch)都必須包含一個(gè)獨(dú)立的熱插拔控制器(Hot Plug Controller),如下圖所示:
配置空間中,與熱插拔相關(guān)的寄存器如下圖所示:
-
熱插拔
+關(guān)注
關(guān)注
2文章
224瀏覽量
37354 -
硬件
+關(guān)注
關(guān)注
11文章
3328瀏覽量
66224 -
PCIe
+關(guān)注
關(guān)注
15文章
1239瀏覽量
82657
原文標(biāo)題:PCIe熱插拔機(jī)制(詳細(xì))總結(jié)
文章出處:【微信號(hào):mcu168,微信公眾號(hào):硬件攻城獅】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論