大家好,我目前任职于某家SSD韧体,主要是负责NVMe Front-end的部分,Front-end主要
负责PCIe和NVMe protocol的firmware porting,所以必须study这两份spec。由于spec
的内容过于庞大,所以我习惯会用网志做笔记,一方便怕自己忘记,一方面也可以在遇到
问题的时候快速查询,当然我所写的都是我对于spec的理解,所以希望有这方面的专家,
可以讨论不同的见解,也欢迎大家讨论与指教。
PCIE:
■原理PCI Express - LTSSM Equalization状态机推演
由于PCIe通道传输的特性,会有所谓的码间干扰(Inter-Symbol Interference,ISI),而
导致资料无法被辨识,且随着PCIe频率越来越高,这个问题会更加明显,因此必须透过
Equalizer来调整彼此间的讯号,得到比较好的眼图,搭建起沟通的桥梁,此篇为EQ
LTSSM的推演。
https://reurl.cc/VjGMzb
■原理PCI Express - LTSSM 状态机推演 "Detect -> Polling -> Configuration ->
L0"
PCIe为point-to-point interconnects(点对点的连接),所以就算系统上由多层PCIe bus
所构成,每个component只要负责与他对面的component之间的link negotiation就可以了
,这篇文章主要会推演两个端点之间的LTSSM是如何从Detect state演进到L0。
https://reurl.cc/akpd4D
■简介PCI Express: Link Training and Status State Machine( LTSSM 状态机 )
由于工作上很容易会遇到PCIe Link上的问题或者我们需要验证LTSSM state transition
有没有符合预期 ,常常需要透过Protocol Analyzer录制PCIe Trace来进一步分析。此篇
主要会介绍Traning Sequence,和各个LTSSM state主要目的为何。
https://reurl.cc/9Od37x
■原理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的机制,方便以后查
询。
https://reurl.cc/veyva1
NVME:
■原理NVM Express - NVMe Submission Queue & Completion Queue (SQ & CQ)
NVMe最基本的communicate架构主要是建立在Submission Queue和Completion Queue,
Host Software透过Submission Queue来提交command让NVMe Controller执行,
Controller会透过Completion Queue来回报command执行状况为何。此篇主要介绍NVMe基
本架构。
https://reurl.cc/bkZYVd