在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

PCIe系統(tǒng)復(fù)位方式

冬至子 ? 來源:存儲(chǔ)隨筆 ? 作者:古貓 ? 2023-06-05 17:30 ? 次閱讀

系統(tǒng)復(fù)位(Reset)

在PCIe Spec中,Reset總共分為兩類:Conventional Reset和Function Level Reset.

1. Conventional Reset

從字面上來講,Conventional Reset是傳統(tǒng)的Reset方式。這一類Reset功能是在PCIe Spec 2.0之前的Spec中定義的,所以稱為傳統(tǒng)的Reset。PCIe設(shè)備必須要支持這一類Reset。

Convential Resets包含了三種Resets: Cold Reset,Warm Reset 和 Hot Reset.

另外,還有一個(gè)概念: Cold Reset和Warm Reset又被稱為Fundamental Reset, Hot Reset被稱為Non-Fundamental Reset.

什么是Fundamental Reset呢?

這是PCIe最基本的復(fù)位方式,主要通過硬件實(shí)現(xiàn),效果是重置整個(gè)設(shè)備,對(duì)每個(gè)狀態(tài)機(jī)、所有硬件邏輯、端口狀態(tài)和配置寄存器重新初始化。

但是,也會(huì)有例外的情況:在某些寄存器中的字段只有在全部電源(包括VCC電源和Vaux備用電源)切斷的情況下才會(huì)被重置。PCIe Spec給這些固執(zhí)的字段起了個(gè)外號(hào)"Sticky Bits".

一般來說,F(xiàn)undamental Reset是針對(duì)整個(gè)系統(tǒng)做Reset,但是有時(shí)也可以針對(duì)某個(gè)單一設(shè)備進(jìn)行重置。

在這里說明一下Fundamental Reset中的Cold Reset和Warm Reset。

  • Cold Reset : 設(shè)備的主電源VCC上電時(shí),就會(huì)觸發(fā)Cold Reset。
  • Warm Reset : 在VCC不斷電的情況下,系統(tǒng)可以觸發(fā)Warm Reset。比如,電源狀態(tài)的變化就會(huì)觸發(fā)Warm Reset. 不過,PCIe Spec并沒有定義觸發(fā)Warm Reset的具體方式,這部分可以有系統(tǒng)設(shè)計(jì)人員自行決定。

另外,在PCIe Spec中,規(guī)定了兩種觸發(fā)Fundamental Reset方式。

  • 一是通過PERST#(PCIe Reset)信號(hào)控制。
  • 二是在沒喲PERST#信號(hào)的情況下,通過Power on/off的方式實(shí)現(xiàn)。

舉個(gè)例子,看看PERST#是如何生成的。

  1. 系統(tǒng)上電穩(wěn)定后,有POWERGOOD信號(hào)產(chǎn)生(下圖紅色框所示)。
  2. 當(dāng)系統(tǒng)的南橋芯片(也就是圖中的IO控制器ICH)收到POWERGOOD信號(hào)后,就會(huì)產(chǎn)生PERST#信號(hào)(下圖綠色部分),此時(shí)會(huì)引起Cold Reset。
  3. 如果系統(tǒng)可以通過非上電的方式觸發(fā)PERST#信號(hào),此時(shí)會(huì)引起Warm Reset。

圖片

明白了Fundamental Reset,那Non-Fundamental Reset中的Hot Reset又是什么呢?

與Fundatmental Reset相反,Hot Reset是一種軟件控制的復(fù)位方式。PCIe設(shè)備出現(xiàn)錯(cuò)誤時(shí),通常情況下用軟件的方式對(duì)設(shè)備重置。軟件可以通過在Bridge control中設(shè)置Secondary Bus Reset bit來觸發(fā)Hot Reset.

圖片

另外,在PCIe總線中,通過發(fā)送TS1序列,并且在TS1序列中設(shè)置Hot Reset bit來對(duì)下游設(shè)備進(jìn)行Hot Reset(如下圖紅色框).

在這個(gè)過程中,發(fā)送端會(huì)持續(xù)發(fā)送TS1序列至2ms, 接收端在接到2個(gè)連續(xù)的TS1序列之后進(jìn)行Hot Reset.

圖片

同樣,舉個(gè)例子說明一下Hot Reset:

  1. 系統(tǒng)通過軟件對(duì)Switch A左邊端口的Secondary Bus Reset bit置為1(下圖紅色框),觸發(fā)了Hot Reset.
  2. 之后通過發(fā)送TS1序列對(duì)PCIe鏈路中的下游設(shè)備觸發(fā)Hot Reset(下圖黑色箭頭).

圖片

2. Function Level Reset

在傳統(tǒng)復(fù)位方式的基礎(chǔ)上,PCIe Sepc 2.0以后開始增加了新的復(fù)位方式FLR(Function Level Reset)。前面講到的傳統(tǒng)復(fù)位方式(Cold Reset, Warm Reset, Hot Reset)均屬于全局復(fù)位方式,而FLR的優(yōu)勢則是對(duì)局部復(fù)位。

在PCIe協(xié)議中,一個(gè)PCIe設(shè)備可能包含多個(gè)功能模塊(Function),每個(gè)功能模塊相互對(duì)立,共用一個(gè)PCIe link。其中,某個(gè)功能模塊出問題時(shí),雖然可以采用傳統(tǒng)復(fù)位方式對(duì)整個(gè)PCIe設(shè)備復(fù)位,但這個(gè)顯然不友好,因?yàn)槠渌δ苣K可能正在埋頭苦干。這就好比如,在一個(gè)團(tuán)體中,一個(gè)人犯錯(cuò)了,要團(tuán)隊(duì)所有人一起承擔(dān),這個(gè)肯定會(huì)影響團(tuán)結(jié)呀。

所以,PCIe深得管理學(xué)的精髓,為了不影響團(tuán)結(jié),F(xiàn)LR允許只對(duì)其中出錯(cuò)的功能模塊(Function)進(jìn)行重置,其他功能模塊正常工作。

不過,F(xiàn)LR復(fù)位方式對(duì)PCIe設(shè)備并不是必須的,在對(duì)PCIe設(shè)備使用FLR復(fù)位之前必須先檢查是否支持FLR。這部分可以查看Device Capabilities Register是否將Funcion-Level Reset Capability bit置起。

圖片

如果PCIe設(shè)備支持FLR,那么就可以通過設(shè)置Device Control Register中的Function-Level Reset bit觸發(fā)FLR復(fù)位咯~

圖片

觸發(fā)FLR之后,PCIe鏈路中都有哪些變化呢?

我們前面提到了,F(xiàn)LR是一個(gè)局部復(fù)位方式,只對(duì)出問題的那個(gè)Function起作用。所以說, FLR只會(huì)改變當(dāng)下Function內(nèi)部的狀態(tài)和寄存器的內(nèi)容 。以下幾個(gè)方面不會(huì)被影響:

  • 執(zhí)行FLR的Function所在的PCIe鏈路狀態(tài)不會(huì)改變,因?yàn)槠渌鸉unction也在共用整條PCIe鏈路;
  • Sticky Bits . 傳統(tǒng)復(fù)位方式也無法改變Sticky bits, 除非完全斷電。
  • HwInit Bits . HwInit bits是硬件初始化的內(nèi)容,這些值由芯片的配置引腳決定,后者上電復(fù)位后從EEPROM中獲取。Cold和Warm Reset可以復(fù)位這些寄存器,然后從EEPROM中從新獲取數(shù)據(jù),但是使用FLR方式不能復(fù)位這些寄存器。
  • 與Link相關(guān)的寄存器 。比如ASPM,F(xiàn)low control等相應(yīng)的寄存器。

另外,PCIe Sepc規(guī)定,某個(gè)Function的FLR必須在100ms之后完成。所以,PCIe Spec寫了一封倡議書給要使用FLR復(fù)位方式的"人們"-軟件:

為了創(chuàng)造一個(gè)溫馨的FLR工作環(huán)境,請(qǐng)做到以下幾點(diǎn):

  • 在FLR工作期間,請(qǐng)不要訪問對(duì)應(yīng)的Function;
  • 清除所有的Command Register;
  • 通過Polling Device Status Register中的Transaction Pending bit來確保之前請(qǐng)求的Compeletion報(bào)文已完成,或者確保后續(xù)不會(huì)再發(fā)送Compeletion報(bào)文。
  • 觸發(fā)FLR之后,請(qǐng)耐心等待至少100ms;
  • 初始化Function的配置寄存器,讓其正常工作。

在FLR執(zhí)行的過程中,如果收到TLP或者Compeletions都會(huì)被默默的丟棄,而不會(huì)向系統(tǒng)報(bào)錯(cuò)。

舉個(gè)栗子,看看FLR執(zhí)行過程,

  1. 如下圖,這個(gè)PCIe設(shè)備中有兩個(gè)功能模塊:Function 0和Function 5. 此時(shí),兩個(gè)Functions依舊是互不干擾,認(rèn)真工作,傳輸TLPs.

圖片

  1. 之后,F(xiàn)unction 5出了一些問題,需要做FLR。FLR之后,F(xiàn)unction5中的之前的TLPs全部被清除。

圖片

  1. Function 5做FLR,并不影響Function 0,繼續(xù)TLPs傳輸。如下圖,3個(gè)TLPs正常傳輸完畢。

圖片

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 控制器
    +關(guān)注

    關(guān)注

    112

    文章

    16389

    瀏覽量

    178435
  • EEPROM
    +關(guān)注

    關(guān)注

    9

    文章

    1022

    瀏覽量

    81667
  • TLP
    TLP
    +關(guān)注

    關(guān)注

    0

    文章

    32

    瀏覽量

    15641
  • Vcc
    Vcc
    +關(guān)注

    關(guān)注

    2

    文章

    305

    瀏覽量

    36081
  • PCIe接口
    +關(guān)注

    關(guān)注

    0

    文章

    120

    瀏覽量

    9736
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    簡談PCIe的軟件配置方式

    大家好,又到了每日學(xué)習(xí)的時(shí)間了,今天我們來聊一聊PCIe的軟件配置方式。 關(guān)于PCIe的軟件配置和初始化 PCIe設(shè)計(jì)出來考慮了和pci兼容問題。所以
    的頭像 發(fā)表于 07-29 09:26 ?7771次閱讀
    簡談<b class='flag-5'>PCIe</b>的軟件配置<b class='flag-5'>方式</b>

    Cortex-M內(nèi)核的軟件復(fù)位方式

    這里只討論內(nèi)核的軟件復(fù)位方式。像STM32的備份域復(fù)位里面也有軟件復(fù)位,則不在本文討論范圍。額外提一句,上電復(fù)位是完整
    的頭像 發(fā)表于 12-06 16:18 ?2287次閱讀
    Cortex-M內(nèi)核的軟件<b class='flag-5'>復(fù)位</b><b class='flag-5'>方式</b>

    Linux操作系統(tǒng)中如何按下PCIe復(fù)位

    在Linux操作系統(tǒng)中,看如何按下PCIe復(fù)位
    的頭像 發(fā)表于 01-20 09:31 ?1621次閱讀
    Linux操作<b class='flag-5'>系統(tǒng)</b>中如何按下<b class='flag-5'>PCIe</b>的<b class='flag-5'>復(fù)位</b>鍵

    PCIe總線的復(fù)位方式是什么?

    PCIe總線規(guī)定了兩個(gè)復(fù)位方式:conventional Reset和FLR(FunctionLevel Reset),而Conventional Reset由進(jìn)一步分為兩大類:Fundamental Reset和Non-Fun
    發(fā)表于 10-16 08:19

    簡談PCIe的軟件配置方式

    ? ? ? ?大家好,又到了每日學(xué)習(xí)的時(shí)間了,今天我們來聊一聊PCIe的軟件配置方式。? ? ? ?關(guān)于PCIe的軟件配置和初始化? ? ? ?PCIe設(shè)計(jì)出來考慮了和pci兼容問題。
    的頭像 發(fā)表于 07-27 19:16 ?3683次閱讀
    簡談<b class='flag-5'>PCIe</b>的軟件配置<b class='flag-5'>方式</b>

    復(fù)位電路的作用及基本的復(fù)位方式

    手動(dòng)按鈕復(fù)位需要人為在復(fù)位輸入端RST上加入高電平(圖1)。一般采用的辦法是在RST端和正電源Vcc之間接一個(gè)按鈕。當(dāng)人為按下按鈕時(shí),則Vcc的+5V電平就會(huì)直接加到RST端。手動(dòng)按鈕復(fù)位的電路如所示。由于人的動(dòng)作再快也會(huì)使按鈕
    的頭像 發(fā)表于 09-06 09:40 ?11.7w次閱讀
    <b class='flag-5'>復(fù)位</b>電路的作用及基本的<b class='flag-5'>復(fù)位</b><b class='flag-5'>方式</b>

    PCIe總線的信號(hào)介紹

    該信號(hào)為全局復(fù)位信號(hào),由處理器系統(tǒng)提供(RC),處理器系統(tǒng)需要為PCIe插槽和PCIe設(shè)備提供該復(fù)位
    發(fā)表于 12-22 14:45 ?2.3w次閱讀

    PCIe總線的兩種復(fù)位方式

    傳統(tǒng)的復(fù)位方式分為Cold、Warm和Hot Reset。PCIe設(shè)備可以根據(jù)當(dāng)前的設(shè)備的運(yùn)行狀態(tài)選擇合適的復(fù)位方式
    的頭像 發(fā)表于 12-30 09:37 ?2.3w次閱讀

    CPU的復(fù)位方式有哪些

    上電復(fù)位就是直接給產(chǎn)品上電,上電復(fù)位與低壓LVR操作有聯(lián)系,電源上電的過程是逐漸上升的曲線過程,這個(gè)過程不是瞬間的完成的,一上電時(shí)候系統(tǒng)進(jìn)行初始化,此時(shí)振蕩器開始工作并提供系統(tǒng)時(shí)鐘,
    的頭像 發(fā)表于 09-17 11:05 ?1.2w次閱讀
    CPU的<b class='flag-5'>復(fù)位</b><b class='flag-5'>方式</b>有哪些

    簡述復(fù)位電路概述以及方式和目的

    是有的電路需要時(shí)鐘信號(hào)那樣,而有的電路是不需要復(fù)位信號(hào)的。復(fù)位又分為同步復(fù)位和異步復(fù)位,這兩種各有優(yōu)缺點(diǎn)。下面我們主要來說說復(fù)位信號(hào)的用途和
    的頭像 發(fā)表于 06-28 09:49 ?6801次閱讀

    stm32復(fù)位方式分類

    stm32復(fù)位方式分類按照復(fù)位區(qū)域的范圍分類,大概可以分為系統(tǒng)復(fù)位,電源復(fù)位,備份域
    發(fā)表于 12-07 19:36 ?12次下載
    stm32<b class='flag-5'>復(fù)位</b><b class='flag-5'>方式</b>分類

    GD32 MCU電源復(fù)位系統(tǒng)復(fù)位有什么區(qū)別

    GD32 MCU的復(fù)位分為電源復(fù)位系統(tǒng)復(fù)位,電源復(fù)位又稱為冷復(fù)位,相較于
    的頭像 發(fā)表于 02-02 09:37 ?1527次閱讀
    GD32 MCU電源<b class='flag-5'>復(fù)位</b>和<b class='flag-5'>系統(tǒng)</b><b class='flag-5'>復(fù)位</b>有什么區(qū)別

    FPGA同步復(fù)位和異步復(fù)位

    FPGA(Field-Programmable Gate Array,現(xiàn)場可編程門陣列)中的復(fù)位操作是設(shè)計(jì)過程中不可或缺的一環(huán),它負(fù)責(zé)將電路恢復(fù)到初始狀態(tài),以確保系統(tǒng)的正確啟動(dòng)和穩(wěn)定運(yùn)行。在FPGA設(shè)計(jì)中,復(fù)位
    的頭像 發(fā)表于 07-17 11:12 ?1619次閱讀

    STM32復(fù)位電路用復(fù)位芯片和阻容復(fù)位電路區(qū)別

    系統(tǒng)中,復(fù)位電路是保證系統(tǒng)正常工作的重要部分。當(dāng)系統(tǒng)出現(xiàn)異常或需要重新啟動(dòng)時(shí),復(fù)位電路能夠迅速將系統(tǒng)
    的頭像 發(fā)表于 08-06 10:26 ?1612次閱讀
    主站蜘蛛池模板: 狠狠干干干| 欧美xxxx性高清| 午夜影院在线观看| 午夜精品网站| 手机看片久久| 国产欧美一区二区日本加勒比| 国内精品免费视频自在线| 99国产福利| 在线99热| 综合伊人久久| 四虎永久网址在线观看| 欧美一区精品| 国产色婷婷精品免费视频| videosgratis乱色欧美野外| 五月天婷婷在线观看高清| 理论视频在线观看| 久久影视免费体验区午夜啪啪 | 欧美瑟瑟| 国内一级毛片| 午夜影吧| 成人看的午夜免费毛片| 亚洲婷婷综合中文字幕第一页| 被暗卫肉高h| 三级在线观看免播放网站| 久久五月女厕所一区二区| 2014天堂| 成人综合激情| 亚洲第一页国产| 天天操丝袜| 狠狠噜天天噜日日噜| 午夜精品免费| 五月丁五月丁开行停停乱| 好爽好深太大了再快一点| 日日操日日射| 高清毛片一区二区三区| 免费看国产精品久久久久| 一区二区影视| 天天色天天射天天干| 黄色片视频网| 男女同床爽爽视频免费| 日本欧美一区二区三区不卡视频|