- 博客(7)
- 收藏
- 关注
原创 NVMe SGL
SGL,Scatter Gather List,分散聚集列表,一种 NVMe 规定的数据结构,用于描述数据缓冲区,在数据传输过程中起着关键作用。消费级 SSD 一般都不支持,企业级 SSD 一般都会支持。NVMe over Fabrics中,要求所有 commands(Fabrics,Admin,I/O)都用 SGL。NVMe over PCIe中,则 I/O cmd 支持 SGL 和 PRP,Admin cmd 只支持 PRP。
2025-04-07 20:19:56
668
原创 NMVe Format NVM command
A low level format 可以破坏所有 namespaces ,也可以仅破坏指定 namespace,破坏其中的 all data and metadata。该命令执行成功后,controller 不能返回任何在先前 namespace 中的 user data。
2025-02-11 20:12:00
618
原创 NVMe HMB
HMB,全称 Host Memory Buffer。简单来说,就是 NMVe 协议提供了一种可选机制让 host 可以分配一部分内存给 SSD 控制器独自使用。当然,host 可能无法提供任何 HMB 或只能提供一小部分 HMB。但 SSD 要能包容这种情况,即使没有 HMB 也要能正常工作。因为协议规定 HMB 也只是一个可选项,SSD 并非必须支持。可以这么说,HMB 算是一种锦上添花的机制,但当前 HMB 已经得到广泛的应用。
2024-11-28 19:39:12
1293
原创 PCIe Sticky
PCIe 中的 Sticky 算是一种寄存器类型,也可以说成一种寄存器属性。它包括了 Bit-Field Types(也可以说 Register Attribute) 为 ROS(Sticky - Read-only)、RWS(Sticky - Read-Write)、RW1CS(Sticky - Write-1-to-clear status)的寄存器。Sticky 寄存器在复位后仍能保持先前的错误状态,这对于固件及上层应用程序而言具有显著的价值。
2024-11-21 19:51:49
960
原创 NVMe Reset
NVMe中有3种复位机制:NVM Subsystem Reset、Controller Level Reset、Queue Level Reset本文主要参考协议规范 NVMe 1.4 版本。
2024-11-20 16:47:19
1206
原创 NVMe PRP
PRP,Physical Region Page,物理区域页,本质是一个 64 位内存物理地址。A PRP entry 是一个指向 physical memory page 的指针。PRPs 是一个用于 controller 和 host memory 之间数据传输的分散/收集机制,可实现高效的无序数据传输。简单来说,PRP 就是一种寻址方式,告诉 SSD 去哪里取数据。同时也是 NVMe 规定的数据结构之一,约定了一种 controller 和 host 都能读懂的 data layout。
2024-11-19 09:21:18
595
原创 PCIe Reset
PCIe 中有4种复位机制:Cold Reset(冷复位)、Warm Reset(暖复位)、Hot Reset(热复位)、FLR(Function Level Reset,功能级复位)。前3种被称为 Conventional Reset(传统复位)。其中 Cold Reset、Warm Reset 基于边带信号 PERST#,又称为Fundamental Resets(基本复位)。Hot Reset 不使用边带信号 PERST#,又成为 Non-Fundamental Reset。
2024-11-14 21:30:00
1563
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人