Re: [心得] PCIe & NVME Protocol Study

看板 Tech_Job
作者 Caramel715 (焦糖)
時間 2023-10-12 03:06:06
留言 51 ( 48推 0噓 3→ )
回文 3則
大家好,繼上次分享了幾篇有關PCIE和NVME的文章,陸陸續續又撰寫了幾篇NVME的文章, 這幾年發現,對於剛畢業的新鮮人看spec可能是一個很高的門檻,常常一知半解,後來把 我撰寫的文章丟給他們看後,發現他們其實都能理解原理,所以意外發現撰寫Blog其實也 是可以當作教育訓練的教材,培養人才事半功倍,省時省力,雖然最近景氣不太好 ,不過還是歡迎大家來做SSD controller,以下是文章分享,歡迎大家一起討論 ■原理NVM Express - Admin Command Set Admin Queue主要用來提交"管理和控制Controller行為"的指令,每個command會使用 Opcode來做區別,Admin Queue的create方式為host software會預先allocate一塊 memory buffer,並將buffer base address填入NVMe register的Admin Submission Queue Base register(ASQ)和 Admin Completion Queue Base Address register(ACQ), 這樣host software提交Admin Command的時候,Controller就能從ASQ得知要去哪裡 fetch command回來執行。此篇將詳細介紹提交到Admin Queue的指令集有哪些,且詳細介 紹每個Admin Command的作用為何 https://reurl.cc/OjMNnR ■原理NVM Express - NVM Command Set 在NVM subsystem中,可能會存在多個controllers,每一個controller可能會去存取某些 特定namespace。Namespace由多個logical blocks所組成,而logical blocks是 controller存取data的最小單位。而一個logical blocks的size為何,可以為512 bytes, 1 KiB, 4 KiB…等等,主要透過Identify command的Identify Namespace data structure的內容可以得知。此篇幅將會介紹Namespace的特性和狀態轉變,並且介紹 Namespace與Controller的關係如何透過Namespace Management而關聯起來,最後在介紹 提交到I/O Queue的指令集有哪些和每個I/O Command的作用為何。 https://reurl.cc/x6amAb ■解析 NVM Express - 透過Linux OS 解析M.2 NVMe SSD 由於我撰寫了"原理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。 https://reurl.cc/QZRqg2 ※ 引述《Caramel715 (焦糖)》之銘言: : 大家好,我目前任職於某家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 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.169.225.234 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Tech_Job/M.1697051168.A.E31.html

回文

[心得] PCIe & NVME Protocol Study
142 154 tech_job Caramel715
2022-04-11 14:00:18
Re: [心得] PCIe & NVME Protocol Study
3 8 tech_job flysonics
2022-04-12 01:19:09
Re: [心得] PCIe & NVME Protocol Study
48 51 tech_job Caramel715
2023-10-12 03:06:06

留言

da5n299o 用心給推 10/12 03:23 1F
jupei 值得鼓勵 10/12 04:23 2F
kyosuke1 這比一推廢文好多了,感謝分享 10/12 04:39 3F
jkkert 推專業文 10/12 06:30 4F
yolasiku 不錯 比某些自以為很懂的廢文好太多了 10/12 07:36 5F
marsonele 10/12 07:39 6F
rizman28 讚喔 10/12 07:50 7F
sc1 這位同學 房租水電費要繳哦 10/12 08:09 8F
gosh717 10/12 08:20 9F
hebeisme5566 佛心 10/12 08:38 10F
outzumin 願意分享 神人給推 10/12 08:41 11F
i78524 用心給推! 10/12 08:43 12F
bluezero000 10/12 08:58 13F
catslave6 10/12 09:11 14F
tim82518 佛心C哥推 10/12 09:14 15F
s869225 10/12 09:16 16F
Smallsh 10/12 09:21 17F
blackrays 優質推 10/12 09:41 18F
jzoosuck 謝謝分享! 10/12 09:47 19F
ronald0000 10/12 09:48 20F
iNicholas 推分享 10/12 09:56 21F
jerboaa 推 分享 10/12 10:15 22F
shibin 10/12 10:32 23F
timandtony 我也是看你的文章學習PCIE,受用良多 10/12 10:38 24F
iamala 雖然看不懂但感謝分享 10/12 11:07 25F
zzxx1322 推 謝謝整理 10/12 11:09 26F
djboy 看不懂,趕快推一下 10/12 11:14 27F
kuyfd456 感謝 10/12 11:16 28F
LexiliTe 推 對學習基礎非常有幫助 感謝大大 10/12 11:17 29F
yukihiko 10/12 11:43 30F
ffeikki 10/12 11:56 31F
leoloveivy 明天竹南報到 10/12 11:59 32F
kkes0001 先記著,以後有人問直接丟 10/12 12:05 33F
allenchen821 讚讚讚 推 10/12 12:08 34F
v86861062 推推 10/12 12:23 35F
fallen01 要來支援收銀嗎 10/12 12:47 36F
c890317 佛 用心給推 10/12 13:27 37F
bcew 推有心 10/12 14:27 38F
ohohohya 讚讚 10/12 14:28 39F
susna80 優文 10/12 15:08 40F
ab3896423 10/12 15:12 41F
nxuanr 文組看不懂怎麼辦 10/12 15:39 42F
hiwin5566 好文推推 10/12 15:55 43F
notsmall 10/12 16:59 44F
wwndbk 10/12 18:28 45F
lycer 10/12 20:03 46F
greenstar27 超推! 10/12 20:10 47F
jecint1707 感謝分享 10/13 09:28 48F
mmonkeyboyy 推一下 寫這麼長 算你狠捏~ 10/13 14:04 49F
osuv 看不懂 但感謝分享 10/13 18:34 50F
fangzzz001 10/13 23:16 51F

最新文章

[徵求] 中華電信勁量7g以上
e-coupon fatbean
2024-11-07 09:17:04
[家教] 協助改英文講稿
hometeach sneakytofu
2024-11-07 09:11:55
虐童事件不能姑息啊~
babymother lovyou
2024-11-07 08:53:22
[贈送] 全國 美戰商品、眾多飾品
give wielinom
2024-11-07 08:50:41
[請益] 請推薦美債的書籍
stock blackbrid
2024-11-07 08:48:28
[社區] 台南市新化區天闊
home-sale abc86034
2024-11-07 08:46:26
[徵求] 7-11 250-25折價券 6張
e-coupon aiko6576
2024-11-07 08:46:22