顯示具有 PCI Express 標籤的文章。 顯示所有文章
顯示具有 PCI Express 標籤的文章。 顯示所有文章

2023年10月11日 星期三

解析 NVM Express - 透過Linux OS 解析M.2 NVMe SSD

在之前,我撰寫了三篇有關NVMe的文章 ,分別是"原理NVM Express - NVMe Submission Queue & Completion Queue (SQ & CQ)"、"原理NVM Express - Admin Command Set"和"原理NVM Express - NVM Command Set",只要有了這三篇的基本知識,我們就有足夠的能力可以去解析我們主機板上任何一個M.2 NVMe device的一些資訊和如何操作它。接下來這篇文章會使用x86系統並安裝Ubuntu OS,然後隨意安裝市面上的一款M.2 NVMe SSD到主機板上,透過Linux command line的方式來解析此M.2 NVMe SSD的能力和如何透過I/O command去讀寫namespace,並且提供一些在Linux中非常實用的CLI。


2022年4月10日 星期日

原理PCI Express - LTSSM Equalization狀態機推演

在之前,我撰寫了一篇簡介PCI Express: Link Training and Status State Machine( LTSSM 狀態機 )介紹有關LTSSM中各個state的作用和另外一篇原理PCI Express - LTSSM 狀態機推演 "Detect -> Polling -> Configuration -> L0推演了LTSSM如何從Detect state轉移到L0 state。接下來這篇文章,將會介紹Equalization的作用、規則、升速和LTSSM的推演。


2021年11月29日 星期一

原理PCI Express - LTSSM 狀態機推演 "Detect -> Polling -> Configuration -> L0"

在之前,我撰寫了一篇介紹PCIExpress: Link Training and Status State Machine(LTSSM)介紹有關LTSSM中各個state的介紹,接下來這篇文章會推演兩個端點之間的LTSSM是如何從Detect state演進到L0。PCIe的優點就是point-to-point interconnects(點對點的連接),所以就算系統上由多層PCIe bus所構成,每個component只要負責與他對面的component之間的link negotiation就可以了,大大的降低複雜程度。

2021年3月29日 星期一

簡介PCI Express: Link Training and Status State Machine( LTSSM 狀態機 )

PCIe LTSSM,全名為Link Training and Status State Machine,主要是用在PCIe中Physical Layer Link的初始化與設置,讓device之間建立起溝通橋梁。整個LTSSM狀態機總共有11個state,每個state又可以分為多個substates,所以整個狀態機的跳轉可以說是非常的錯綜且複雜且完善,此篇主要是前情提要,介紹一些名詞,之後會在用另外一個篇幅講解實際兩個PCIe Device LTSSM是如何運做的(更新:連結如下)。

原理PCI Express - LTSSM 狀態機推演 "Detect -> Polling -> Configuration -> L0"

原理PCI Express - LTSSM Equalization狀態機推演

2021年3月5日 星期五

PCI Express: Uncorrectable AER - Surprise Down Case Study

在之前,我撰寫了淺談PCI Express: Advanced Error Reporting(AER)文章介紹了整個Advanced Error Report(AER)的錯誤回報機制,文中提到AER主要可以分為Uncorrectable Errors和Correctable Errors。

此篇文章主要描述最近機台上遇到的AER Case,那就是Uncorrectable Error中的Surprise Down,主要是透過LeCroy PCIe Analyzer截錄的LTSSM狀態機來分析,最終找到root cause。

2020年5月25日 星期一

原理PCI Express: Advanced Error Reporting(AER)

Advanced Error Report(簡稱AER)為PCIe 較為強健的錯誤回報機制,在PCI Express®Base Specification Revision 3.0 的6.2節"Error Signaling and Logging"章節有詳細的介紹整個AER的logging與repoting機制,由於工作上常常遇到Linux Kernel log中,出現AER error訊息,所以又把spec拿出來翻一翻,藉此寫一篇關於AER的機制,方便以後查詢,以下就是我對於spec的理解與淺見,如果有誤的地方還望指正。


解析 NVM Express - 透過Linux OS 解析M.2 NVMe SSD

在之前,我撰寫了三篇有關NVMe的文章 ,分別是" 原理NVM Express - NVMe Submission Queue & Completion Queue (SQ & CQ) "、" 原理NVM Express - Admi...