看板 Tech_Job 關於我們 聯絡資訊
大家好,我目前任職於某家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), 來自: 125.227.10.151 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Tech_Job/M.1649656821.A.283.html
iamala : 推推04/11 14:02
lolpklol0975: 群聯 推04/11 14:05
gn01216674 : 推04/11 14:06
s869225 : 推 04/11 14:07
legendary02 : 推推 04/11 14:09
kuyfd456 : 推04/11 14:13
andyw7612162: 推04/11 14:14
bnd0327 : 推推04/11 14:17
Eligor41 : 推04/11 14:17
tim82518 : 推 04/11 14:19
djboy : 謝謝分享 04/11 14:19
fakon : 先推一個 04/11 14:19
※ 編輯: Caramel715 (125.227.10.151 臺灣), 04/11/2022 14:22:14
benson01 : 推 04/11 14:21
loveabc : 推 04/11 14:29
roy19991013 : 推 04/11 14:30
lohas1019 : 知識 推! 04/11 14:30
andrew82465 : 推推 動畫清楚明瞭 04/11 14:31
sabar : 謝分享 04/11 14:31
gugeegee : 推推 真的看到都會背章節了XD 04/11 14:32
cjw0716 : 推,謝謝學長 04/11 14:33
ulovebaby : smi 無私讚讚讚 04/11 14:33
ja5566412 : 推!最近也在study Front end 的spec,這些資料讓 04/11 14:34
ja5566412 : 我收益良多。 04/11 14:34
aika472405 : 推 04/11 14:35
b0117 : 請問原po是在p還是s高就? 04/11 14:39
Lhmstu : 推,感謝分享 04/11 14:41
e80276 : 推推 04/11 14:42
leojojo : 推推 04/11 14:44
basterds : 和我想的差不多 (茶) 04/11 15:04
matthewka : 推 04/11 15:33
chiro1982 : 我記得ssd fan有好幾篇對FE介紹的也蠻詳細的 04/11 15:36
其實我就是看到大陸很多這種技術文章, 但在台灣很少看到, 因為大陸有些用語我看得不太習慣, 所以我就自己寫了
sustr55 : 推 04/11 15:38
tech1140 : 感謝分享 04/11 15:38
yugi2567 : 想也知道群聯 04/11 15:40
hihihihsuan : 感謝分享! 04/11 15:42
a9101214 : 推 04/11 15:45
※ 編輯: Caramel715 (125.227.10.151 臺灣), 04/11/2022 16:08:19
lplay : good 04/11 15:49
ShangLai : 推 04/11 15:52
stevenwin : 推 04/11 15:54
dear82000 : 感謝高手分享 04/11 16:02
shoushing : 推 剛拜讀完大大的AER 04/11 16:03
bloodpiece : 只能推了 04/11 16:06
kjay : 感謝分享 造福雜魚我 04/11 16:09
ckpetercheng: 好文推推 台灣沒有這種技術社群真的可惜 04/11 16:11
jupei : 狂 04/11 16:21
xoy232 : 推 04/11 16:45
kolipjum1 : 推大神 04/11 16:48
s89029 : 推推 04/11 17:01
ninja4great : 推 04/11 17:02
la8day : 推 04/11 17:03
yorkeram : 推分享 很多技術文章都簡體居多 04/11 17:05
sheepxo : 推 04/11 17:05
samluna : 推 04/11 17:24
jacky31232 : 推 04/11 17:37
pilodee : 推 04/11 17:42
spirit : 好用心 04/11 17:43
zzztrees : 推推 04/11 17:47
happy410489 : 推 04/11 17:49
hankower : 推 04/11 18:09
cityioio : 推 04/11 18:11
Helloyu : 好心人推推 04/11 18:13
ohohohya : 有沒有講程式的 我想看pci enumuration 04/11 18:17
印象中這個可能要講到BIOS, 因為BIOS會define MMIO base address位置, BIOS就依據這個base, 從bus number 0~255、dev 0~32、func 0~8, 三個for迴圈全部掃過一遍, 如果VendorID和DeviceID有值代表device存在
assassinzero: 推推,感謝分享 04/11 18:21
jerry012188 : 推 04/11 18:22
maxumin : 希望分享nvme2.0b,pcie5.0 04/11 18:27
longandersen: 推 04/11 18:28
Dracarys : 好奇這specs都幾頁啊? 04/11 18:39
omnmnmnm : 推 04/11 18:45
AaronWang : 推 04/11 18:58
jasonwung : 推 04/11 19:00
aaron70221 : 推 04/11 19:01
GenesisXD : 優文! 04/11 19:01
q10293847 : 推推 04/11 19:09
※ 編輯: Caramel715 (125.227.10.151 臺灣), 04/11/2022 19:20:11
aspirev3 : 推 04/11 19:28
BingLing : 推 04/11 19:32
god4yoo : 推 04/11 19:46
meokay : 推好心 04/11 19:49
hold5566 : push 04/11 19:49
goldie : push 04/11 20:07
GuoJing18 : 推 04/11 20:33
a901601 : 推 04/11 20:53
dildoe : 伸手的連picsig會員都沒吧 XD 04/11 20:57
k798976869 : 推 04/11 21:04
sitting : 感謝分享 04/11 21:10
roy415012 : 推推 好文章 04/11 21:38
A1ch3mi5t : 推 04/11 21:46
rockrock1127: 優質文章 推! 04/11 22:07
woulin : 對岸csdn很多這類文章 04/11 22:13
沒錯,我很多PCIe知識也都從那邊獲得 ※ 編輯: Caramel715 (1.169.193.191 臺灣), 04/11/2022 22:16:10
anewlife : 推推 04/11 22:19
jarjar3215 : 推 04/11 22:19
rosty : 推 04/11 22:36
qoo69600 : 好文一起推 04/11 22:37
dnweimin : 推 04/11 23:04
lplpkkk : 推 04/11 23:15
caeserhaha : 有沒有人要寫FTL的 04/11 23:36
其實我也很想看,不然我都不知道back-end在做什麼 XD
ho83leo : 不錯 04/11 23:37
※ 編輯: Caramel715 (1.169.193.191 臺灣), 04/11/2022 23:39:36
gR7P4zXH : o.o 04/12 00:16
TWkobe : Haha 我想寫FTL 的筆記但感覺會牽涉機密,一般常見 04/12 00:26
TWkobe : 的感覺看論文就好 04/12 00:26
有道理,其實FTL的精隨就是如何去操作NAND, 現在為了省錢好像都使用TLC,但TLC的缺點就是P/E值較低 所以演算法非常重要,因為要延長NAND的壽命 演算法就是公司的Know-how了吧 ※ 編輯: Caramel715 (1.169.193.191 臺灣), 04/12/2022 00:39:24
tim32338519 : 推 感謝分享 04/12 00:50
rizman28 : 好人好事 04/12 01:06
BlueToast : 好人 04/12 01:14
apple5811 : 用心好文 推推 04/12 01:31
a830606 : 讚 04/12 02:08
Jiraya : 推 04/12 02:22
jason911665 : 推推之前就有看過大大的文章 非常實用 04/12 02:41
poem5566 : 高手推 04/12 03:08
EinArthur : 厲害 推 04/12 05:06
mikemike1021: 我們可以來建立台灣的技術社群 04/12 05:18
mikemike1021: 個人有建立了 forum.community.tw 04/12 05:19
mikemike1021: 能使用markdown跟自動為程式碼上色等,也能當一些靜 04/12 05:19
mikemike1021: 態部落格的留言系統或者用rss轉貼(經作者同意)。 04/12 05:19
mikemike1021: 歡迎大家來試試 04/12 05:19
ppony : 慧榮? 04/12 06:37
ppony : 強 04/12 06:47
neil908413 : 推 用心 04/12 08:11
iori305 : 推 04/12 08:29
Padparacha : 我的天啊我在bios海載浮載沉的時候就是你的網誌救了 04/12 08:42
Padparacha : 我一命QQ 04/12 08:42
qq155266 : 推 04/12 10:30
southwind : 大推! 04/12 11:15
koka813 : 讚喔 04/12 11:24
loge400 : 推! 這太讚了 04/12 11:46
tuner123 : 推 04/12 11:52
albert7530 : FTL一定有known how, 不用想了 04/12 12:20
albert7530 : 我建議可以朝flash access下手,例如分析讀data ret 04/12 12:22
albert7530 : ension nand scaled, read refrence 這就無關機密了 04/12 12:22
ipieee : 推一個 04/12 12:50
freezeblue : 好文推~ 04/12 13:17
bloodmoon16 : 推 04/12 13:26
Leo930057 : 推爆 04/12 13:27
SMInice : 學長推 04/12 14:02
elesterknigh: 推 分享 04/12 14:16
warcraft354 : 推!! 04/12 15:04
panrong : 推! 要不要在動畫裡放國旗XD 以防... 04/12 17:59
有道理,以防被偷,以後加個浮水印好了
u9412038 : 推 04/12 18:39
※ 編輯: Caramel715 (125.227.10.151 臺灣), 04/12/2022 19:13:56
goldie : 推 04/12 19:15
shibin : 推,NVMe台灣的文章真的不多 04/12 21:24
NotForever : 推 感謝你~ 04/13 00:26
apnsd2y : 推 04/13 01:17
sef96121 : 推 04/13 08:41
nic0935 : 高 04/13 09:29
hh440977 : 推 04/13 09:34
heaviest : 推 04/13 10:17
peterlin0224: 讚 04/13 11:57
nomorex6 : 推 04/13 16:58
※ 編輯: Caramel715 (1.169.224.116 臺灣), 04/13/2022 19:29:20
pudin0116 : 推 04/13 23:11
yhaoo666 : 讚,寫的很棒,受用無窮 04/14 00:44
Milesians : 推 04/14 18:55
a910184 : 必須推 04/15 08:23
craigwang : push 04/17 00:08
cherry0712 : 推好心 04/18 23:23
xx5236294roy: 我推 04/19 22:48
stwart : 推推認真文 10/13 17:15