本篇主要介紹PCIe總線的復位方式。
PCIe總線規定了兩個復位方式:Conventional Reset和FLR(Function Level Reset),而Conventional Reset又可以進一步分為兩大類:Fundamental Reset和Non-Fundamental Reset。Fundamental Reset方式包括Cold和Warm Reset方式,可以將PCIe將設備中的絕大多數內部寄存器和內部狀態都恢復成初始值;而Non-FundamentalReset方式為Hot Reset方式。
1、傳統復位方式(Conventional)
傳統的復位方式分為Cold、Warm和Hot Reset。PCIe設備可以根據當前的設備的運行狀態選擇合適的復位方式,PCIe總線提供多種復位方式的主要原因是減小PCIe設備的復位延時。其中傳統復位方式的延時大于FLR方式。使用傳統復位方式時,Cold Reset使用的時間最長,而Hot Reset使用的時間最短。
1.1、Cold Reset
當一個PCIe設備的Vcc電源上電后,處理器系統將置該設備的PERST#信號為有效,此時將引發PCIe設備的復位方式,這種方式屬于Fundamental Reset。PCIe設備進行Clod Reset時,所有使用Vcc進行供電的寄存器和PCIe端口邏輯將無條件進入初始狀態。但是使用這種方式依然無法復位使用Vaux(備用電源)供電的寄存器和邏輯,這些寄存器和邏輯只能在處理器完全掉電時徹底復位。
1.2、Warm Reset
在PCIe的設備完成上電后,也可能重新進行Fundamental Reset,這種復位方式也被稱為Warm Reset。PCIe并沒有定義Warm Reset的具體實現方式。
1.3、Hot Reset
當PCIe設備出現某種異常時,可以使用軟件手段對該設備進行復位。如系統軟件將Bridge Control Register 的Secondary Bus Reset位置為1,該橋片將secondary總線上的PCIe設備進行Hot Reset。PCIe總線將通過TS1和TS2序列對下游設備進行Hot Reset。
在TS1和TS2序列中包含一個Hot Reset位。當下游設備收到一個TS1和TS2序列,而且Hot Reset位為1時,下游設備將使用Hot Reset方式進行復位操作。
Hot Reset方式并不屬于Fundamental Reset。PCIe設備進行Hot Reset方式時,也可以將PCIe設備的多數寄存器和狀態恢復為初始值。
同時,在PCIe總線中,如果需要對鏈路的Link Width進行改變時,也將會用到Hot Reset。具體的流程如下:
Ensure the Link is in the L0LTSSM state.
Program the 6-bit “Link ModeEnable” field of the “Port LinkControl Register” on page 732. This isused bythe LTSSM in DETECT.
Programthe 9-bit “PredeterminedNumber of Lanes” field of the “Gen2 Control Register” on page 771. Thisindicatesto the LTSSM, the number of lanes to check for exiting from L2.IDLE orPOLLING.ACTIVE.
Trigger a Hot Reset, by settingthe Secondary Bus Reset bit in the RC Bridge ControlRegister (of the Type 1 PCIConfiguration Space Header) to 1.
Wait for 2 mS. The core’s LTSSMwill transition from L0 -》 RCVRY -》 HOTRESET.
Clear theSecondary Bus Resetbit. The core’s LTSSM will transition from HOTRESET -》 DETECT.
2、FLR(Function Level Reset)
除了傳統的復位方式之外,PCIe總線還提供了FLR方式。系統軟件通過填寫某些寄存器,如synosys的PCIe的IP是可以通過配置PCI ExpressCapability的DeviceControl Register的第16bit完成FLR。支持FLR方式的PCIe設備需要在其BAR空間中提供一個寄存器,當系統軟件對該寄存器的Function LevelReset位寫1時,PCIe設備將使用FLR方式復位PCIe設備的內部邏輯。FLR方式對PCIe設備是可選的。
在一個大規模的并行處理系統中,系統軟件使用分區的概念管理所有硬件資源,包括處理器資源和所有IO資源,這些IO資源中通常會包含PCIe設備。在這種處理器系統中,任務在指定的分區中運行,當這個任務執行完畢后,系統軟件需要調整硬件資源的分區。此時受到影響的PCIe設備需要使用FLR方式復位內部的邏輯,以免造成對新的分區的資源污染,并保護之前任務的結果。
當PCIe設備使用FLR方式進行復位時,有些與PCIe鏈路相關的狀態和寄存器并不會被復位:
Sticky Registers。與傳統的復位方式相同,FLR方式不能復位這些寄存器,但是系統軟件對部分Sticky Registers進行修改。當Vaux(備用電源)被移除后,這些寄存器中的保存的數據才會丟失。
HwInit類型的寄存器。在PCIe設備中,有效配置寄存器的屬性為HwIint,這些寄存器的值由芯片的配置引腳決定,后者上電復位后從EEPROM中獲取。Cold和Warm Reset可以復位這些寄存器,然后從EEPROM中從新獲取數據,但是使用FLR方式不能復位這些寄存器。
此外,還有一些特殊的配置寄存器不能被FLR方式復位,如Max_Payload_Size、RCB和一些與電源管理、流量控制和鏈路控制直接相關的寄存器。
FLR方式不會影響LTSSM狀態機。
-
總線
+關注
關注
10文章
2869瀏覽量
87995 -
PCIe
+關注
關注
15文章
1227瀏覽量
82452 -
復位
+關注
關注
0文章
171瀏覽量
24198
原文標題:PLC控制電路設計中常用的電氣符號和文字符號
文章出處:【微信號:gongkongworld,微信公眾號:工控資料窩】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論