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

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

PCIe總線中的鏈路初始化與訓練

SwM2_ChinaAET ? 來源:未知 ? 作者:李倩 ? 2018-06-05 09:06 ? 次閱讀

PCIe總線中的鏈路初始化與訓練(Link Initialization & Training)是一種完全由硬件實現的功能,處于PCIe體系結構中的物理層。整個過程由鏈路訓練狀態機(Link Training and Status State Machine,LTSSM)自動完成,也就說基本沒有數據鏈路層和事務層啥事。

LTSSM在PCIe體系結構中的位置的示意圖如下:

在系統復位后,會自動進行鏈路訓練,以達成以下目標:位鎖定(Bit Lock)、字符鎖定(Symbol Lock,Gen1 & Gen2 Only)、塊鎖定(Block Lock,Gen3 Only)、確定鏈路寬度(Link Width)、通道位置翻轉(Lane Reversal)、信號極性翻轉(Polarity Inversion)、確定鏈路的數據率(Data Rate)和通道對齊(Lane-to-Lane De-skew)等功能。

下面依次的,簡要地介紹一下這些目標。

注:本次連載博文主要Gen2為主,所以一些和Gen3相關的內容只會簡單提及,并不會深入地介紹,有興趣的可以閱讀PCIe Spec V3.0或者Mindshare的相關書籍。

首先是

位鎖定(Bit Lock):

前面的文章中提到過,PCIe總線采用了一種嵌入式時鐘的機制,即發送端只向接收端發送數據信號,并不發送時鐘信號(時鐘信號影藏在數據信號中)。接收端可以通過CDR(Clock and Data Recovery)邏輯將時鐘從數據流中恢復出來,然后再用恢復出來的時鐘對數據信號進行采樣。當然,時鐘恢復需要一定的時間,才能保證時鐘信號與數據信號的相位對應關系符合要求。一旦CDR完成了時鐘的恢復,我們就說PCIe總線完成了位鎖定。

字符鎖定(Symbol Lock):

完成了位鎖定之后,只是能夠準確地識別出數據流中的0和1,還是不知道發送的內容是個啥。對于Gen1&Gen2來說,采用的8b/10b編碼,即傳輸的數據是以10bit為一個字符。LTSSM可以引導物理層相關邏輯通過識別COM字符(K28.5)來確定每個字符的開始與結束為止,即字符鎖定。

鏈路寬度(Link Width):

由于PCIe允許將x1的PCIe卡插入x4、x8甚至是x16的PCIe插槽中。因此在鏈路訓練與初始化過程中,相鄰的兩個PCIe設備需要相互通信來確定其支持的最大鏈路寬度。

注:實際上PCIe Spec還允許采用動態帶寬的機制,即允許鏈路寬度和數據率動態調整,以實現降低功耗等功能。

通道位置翻轉(Lane Reversal):

有的時候兩個PCIe設備的通道排列位置可能不太一致,PCIe Spec允許對默認的通道排列位置重新排列,如下圖所示。但是,從大部分的PCIe設備(PCIe卡和插槽等)都是按照統一的標準實現的,一般不會出現這種情況,因此這一功能是可選的。

信號極性翻轉(Polarity Inversion):

前面的文章中介紹過,PCIe收發的都是差分信號,有的時候Link兩端的設備的對應信號的極性可能是相反的。因此,PCIe Spec允許在鏈路訓練與初始化的時候,對其進行調整,如下圖所示。和通道位置翻轉(Lane Reversal)不一樣的是,信號極性翻轉(Polarity Inversion)并不是一個可選項,而是所有標準PCIe設備都應支持的。

鏈路的數據率(Data Rate):

系統剛復位的時候,鏈路訓練和初始化都是基于2.5G T/s的速率的。如果Link兩端的設備都支持更高的速率,則會自動進入Re-training狀態,以重新切換速率。

注:PCIe Spec規定,高速率的PCIe設備必須能夠向下兼容。即Gen2必須同時支持2.5G T/s和5G T/s。

通道對齊(Lane-to-Lane De-skew):

PCIe鏈路完成字符鎖定后,還需要進行通道對齊。因為有的通道的信號可能先到達,有的可能后到達。PCIe Spec規定PCIe鏈路應有能力對一定范圍了的Lane-to-Lane Skew進行移除,使得各個Lane上的信號是同步的。關于通道對齊,會在后續的博文中詳細地介紹。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 嵌入式
    +關注

    關注

    5087

    文章

    19153

    瀏覽量

    306425
  • 總線
    +關注

    關注

    10

    文章

    2894

    瀏覽量

    88218
  • PCIe
    +關注

    關注

    15

    文章

    1245

    瀏覽量

    82867

原文標題:【博文連載】PCIe掃盲——鏈路初始化與訓練基礎(一)

文章出處:【微信號:ChinaAET,微信公眾號:電子技術應用ChinaAET】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    SRIO重復初始化不通了

    專家好: 調試接口時經常會出現重新load程序的情況,發現如果SRIO雙方已經進行數據通信,重新加載程序進行SRIO初始化后,srio不通了,需要重新斷電重連,這樣調試起來比較浪費時間,請問有什么好的方法,可以節省調試時間
    發表于 01-07 11:15

    使用iMPACT無法初始化

    使用iMPACT我無法初始化。在初始邊界掃描時,彈出以下錯誤:有許多未知設備被檢測到。按是繼續或按否停止。我還收到以下錯誤:錯誤:iMPACT - 硬件配置可能存在問題。電纜,掃描
    發表于 09-16 10:32

    CAN總線初始化

    1、CAN總線初始化void can_init(void){CAN_InitTypeDefCAN_InitStructure
    發表于 08-19 07:17

    手機模塊初始化向導

    手機模塊初始化向導:為了剛好的對手機模塊進行初始化,所以把最基本的向導寫下來.本向導適用于本公司的西門子TC35I和華為GT9000模塊。一、在初始化手機模塊前,請先確定DT
    發表于 09-18 09:41 ?17次下載

    RDA1846S初始化設置

    RDA1846S初始化設置RDA1846S初始化設置RDA1846S初始化設置
    發表于 01-15 17:08 ?0次下載

    CAN總線控制器SJA1000的初始化程序設計

    CAN總線控制器SJA1000的初始化程序設計。
    發表于 05-06 11:29 ?12次下載

    UCOS_III_配置與初始化

    UCOS_III_配置與初始化
    發表于 12-20 22:53 ?5次下載

    objc源碼NSObject如何進行初始化

    + alloc 和 - init 這一對我們在 iOS 開發每天都要用到的初始化方法一直困擾著我, 于是筆者仔細研究了一下 objc 源碼 NSObject 如何進行初始化。 在具
    發表于 09-26 09:58 ?0次下載

    PCIe總線必須要先完成Flow Control初始化

    由于VC0是默認使能的,所以當Flow Control初始化開始時,其會被自動的初始化。其他的Virtual Channel是可選的,只有當被配置為使能的時候才會被初始化。
    的頭像 發表于 05-24 09:18 ?7975次閱讀
    <b class='flag-5'>PCIe</b><b class='flag-5'>總線</b>必須要先完成Flow Control<b class='flag-5'>初始化</b>

    PCIe總線的三種錯誤報告方式

    PCIe設備的配置空間中的狀態與控制寄存器如上圖所示,通過這些寄存器可以使能(或禁止)通過錯誤消息(Error Message)發送錯誤報告、查詢錯誤狀態信息,以及訓練
    的頭像 發表于 08-23 10:14 ?1.4w次閱讀
    <b class='flag-5'>PCIe</b><b class='flag-5'>總線</b>的三種錯誤報告方式

    IIC總線初始化基本驅動參考程序應用代碼免費下載

    本文檔的主要內容詳細介紹的是IIC總線初始化基本驅動參考程序應用代碼免費下載。程序功能:為IIC總線的基本驅動程序(此程序沒有寫主函數,只是一些IIC必備的子函數)
    發表于 01-16 08:00 ?5次下載
    IIC<b class='flag-5'>總線</b><b class='flag-5'>初始化</b>基本驅動參考程序應用代碼免費下載

    神經網絡如何正確初始化?

    初始化訓練深度神經網絡的收斂性有重要影響。
    的頭像 發表于 05-17 16:32 ?8157次閱讀
    神經網絡如何正確<b class='flag-5'>初始化</b>?

    C++之初始化列表學習的總結

    可以使用初始化列表對成員進行初始化
    的頭像 發表于 12-24 17:39 ?874次閱讀

    如何在Segger J-Flash設置芯片初始化序列?

    許多微控制器在燒錄之前需要一個自定義的初始化序列來初始化目標硬件,例如初始化PLL時鐘,關閉看門狗或定義Flash的等待狀態。在使用這些對初始化過程有特殊要求的芯片時,在Segger
    的頭像 發表于 12-12 10:56 ?2429次閱讀

    DDR4-初始化、訓練和校準

    上電與初始化是由一系列精心設計的步驟組成的序列(sequence)。一般來說,在系統上電之后,ASIC/FPGA/處理器的 DDR 控制器會被從復位狀態釋放,自動執行上電與初始化
    的頭像 發表于 07-03 11:48 ?7144次閱讀
    DDR4-<b class='flag-5'>初始化</b>、<b class='flag-5'>訓練</b>和校準
    主站蜘蛛池模板: 成人欧美一区二区三区小说| 午夜两性色视频免费网站| 五月婷婷色网| 在线欧美视频免费观看国产| 国产yw855.c免费视频| 午夜免费视频网站| 久久五月天婷婷| 色综合综合色综合色综合| 免费久久精品国产片香蕉| a级男女性高爱潮高清试| 午夜精品区| 成年大片免费播放视频人| 免费公开视频人人人人人人人| 性生活黄色毛片| 狂捣猛撞侍卫攻双性王爷受| 免费高清在线视频色yeye| 久久天天干| 天天做夜夜爱| www.色偷偷| 国产精品欧美久久久久天天影视| 你懂的福利| 欧美性视频一区二区三区| 色色网视频| 深夜偷偷看视频在线观看| 亚洲高清毛片| 欲色网站| 日韩三级中文| 日本三级视频| 日韩精品免费一区二区三区| 欧美电影一区二区| 欧美黄色免费网址| 国产色丁香久久综合| 国内精品视频在线| 久久大香线蕉综合爱| 女人扒开腿让男人桶到爽| 黄色视屏日本| 国产嫩草影院精品免费网址| 国产一级特黄生活片| 永久看免费bbbbb视频| 夭天干天天做天天免费看| 夜操|