特性解释

  1. 通道 (Channel):在SSD中,通道负责将来自主机的命令和数据传输到存储介质(NAND闪存)上。每个通道都连接着一定数量的NAND闪存芯片。通道的数量对SSD性能有很大影响,因为多个通道意味着更多的数据可以同时传输。因此,具有更多通道的SSD通常能提供更高的读写速度和吞吐量。
  2. CE(Chip Enable,芯片使能):在多芯片SSD中,控制器需要与特定芯片通信以执行操作。CE信号允许控制器选择要通信的特定芯片,同时禁用其他芯片。CE信号用于减少不必要的干扰,确保数据正确地传输到目标闪存芯片(NAND)。
  3. 多流 (Multi-stream):多流技术通过将具有不同生命周期的数据存储在不同的物理区域来优化写入操作。这可以提高SSD的性能,因为减少了写放大(实际写入闪存所需的操作次数大于请求的写入数据量)。此外,多流技术有助于提高SSD的耐用性,因为它可以减少擦除操作的次数,从而延长闪存芯片的使用寿命。
  4. Plane(平面):平面是闪存芯片内的一个独立存储单元,用于存储和管理数据。平面的主要优点是它们可以独立执行读、写和擦除操作。通过同时执行多个操作,具有多个平面的闪存芯片可以提高SSD的性能。此外,多平面架构也有助于提高存储密度,因为它可以在更小的物理空间内容纳更多的数据。
  5. Page(页):页是NAND闪存中的最小可寻址单位,通常包含几千个字节。数据以页为单位进行读写。每个闪存块由多个页组成,块是擦除操作的最小单位。在闪存中,页和块是两个重要的概念,因为它们决定了数据的存储和管理方式。
  6. 队列 (Queue):队列用于管理SSD控制器中的输入/输出请求。在现代SSD中,通常使用NVMe队列来实现更高的性能和更低的延迟。NVMe队列是一种高级队列结构,可以并行处理多个命令,提高了存储设备的吞吐量。这对于实现高速数据传输和降低延迟至关重要。NVMe队列由提交队列(Submission Queue, SQ)和完成队列(Completion Queue, CQ)组成。提交队列负责接收主机发送的命令,而完成队列负责将操作结果报告给主机。
  7. 控制器(Controller):SSD控制器是负责管理闪存和与主机系统通信的集成电路。它处理数据的读取、写入、擦除操作以及错误检测和纠正等功能。控制器的性能直接影响到SSD的速度和可靠性。
  8. NAND闪存:NAND闪存是一种非易失性存储技术,用于存储数据。它的主要优点是低功耗、快速读写速度和较高的存储密度。NAND闪存有多种类型,如SLC(单级单元)、MLC(多级单元)、TLC(三级单元)和QLC(四级单元),它们之间的主要差异在于每个存储单元存储的比特数。
  9. Wear Leveling(磨损均衡):磨损均衡是一种SSD中用于延长寿命的技术。由于闪存单元具有有限的擦除周期,磨损均衡技术通过均匀分配擦除次数,确保所有闪存块的寿命大致相同。这有助于防止某些闪存块过早失效,从而提高SSD的整体寿命。
  10. 写放大
    写放大(Write Amplification,WA)是一个描述在固态硬盘(SSD)中实际写入的数据量与主机请求写入的数据量之间比例的术语。

写放大的主要原因是,当主机需要写入新数据时,如果目标闪存块中已经存在部分有效数据,控制器需要执行以下操作:

1. 读取目标块中的有效数据。
2. 将新数据与旧数据合并。
3. 擦除目标块。
4. 将合并后的数据写回到闪存块。

这一系列操作导致实际写入的数据量大于主机请求写入的数据量,从而产生了写放大现象。写放大会影响SSD的性能和寿命,因为更多的实际写入操作会增加闪存的磨损,并消耗更多的写入周期。

为了降低写放大,SSD采用了一些优化策略,例如:

1. 垃圾回收(Garbage Collection)策略:垃圾回收算法负责回收包含无效数据的块,并重新分配这些块以供后续写入操作使用。通过始终选择无效数据最多的块,垃圾回收有助于减小写放大。
2. 磨损均衡(Wear Leveling):磨损均衡算法确保所有闪存块的擦除次数大致相同。这有助于避免某些块过早失效,从而延长SSD的整体寿命。
3. TRIM命令:TRIM命令允许操作系统通知SSD哪些数据块已不再使用,可以安全擦除。这有助于减小写放大,因为控制器可以更有效地管理可用空间。
4. 缓存:使用DRAM或其他类型的缓存可以暂存要写入闪存的数据,使得控制器有时间执行必要的优化,例如合并写入操作或重新分配块,从而降低写放大。

了解写放大及其影响对于更好地理解SSD性能和寿命至关重要。通过采用适当的优化策略,可以降低写放大,从而提高SSD的性能和耐久性。

P4K(L2P)字段

在SSD中,L2P(逻辑到物理)映射表用于将逻辑块地址(LBA)映射到物理存储地址。通过将P4K数据从高比特位到低比特位以blk(块)、pg(页)、ch(通道)、ce(芯片使能,Chip Enable)、plane(平面)和frag(分片)的形式组织,有助于高效管理和访问SSD中的数据。以下是每个组件的详细解析,以及一个具体的使用示例

blk(块)

在NAND闪存中,块是由多个页组成的存储单元。擦除操作必须以块为单位进行。通过将数据组织为块,可以在需要擦除旧数据时更高效地管理存储空间。

1. 示例:L2P表中的blk字段表示物理地址中的块编号。当我们需要写入或读取数据时,控制器可以查找L2P表以确定数据位于哪个物理块中。

pg(页)

页是NAND闪存中的最小可寻址单位,通常包含几千个字节。数据以页为单位进行读写。将数据组织为页有助于实现高速读写操作,同时允许更灵活地管理数据存储。

1. 示例:L2P表中的pg字段表示物理地址中的页编号。当我们需要写入或读取数据时,控制器可以查找L2P表以确定数据位于物理块中的哪个页。

ch(通道)

通道是控制器与闪存芯片之间的连接。通道的数量影响了数据传输的速度,因为每个通道都可以独立传输数据。通过将数据组织为通道,可以实现更高的读写性能和吞吐量。

1. 示例:L2P表中的ch字段表示物理地址中的通道编号。当我们需要写入或读取数据时,控制器可以查找L2P表以确定数据通过哪个通道进行传输。

ce(芯片使能,Chip Enable)

CE信号用于激活和控制特定闪存芯片。通过使用CE,控制器可以选择与特定芯片进行通信。在多芯片配置中,CE信号允许控制器有效地管理各个芯片。

1. 示例:L2P表中的ce字段表示物理地址中的芯片编号。当我们需要写入或读取数据时,控制器可以查找L2P表以确定数据位于哪个芯片中。

plane(平面)

平面是闪存芯片内的一个独立存储单元。每个平面都可以独立执行读、写和擦除操作。将数据组织为平面有助于提高性能和吞吐量,因为多个平面可以并行操作。

frag(分片)

分片是将页面中的数据划分为更小的单元。通过将数据组织为分片,可以更快地访问和处理这些数据片段。这对于大型数据传输和数据管理特别有用。

示例:L2P表中的frag字段表示物理地址中的分片编号。当我们需要写入或读取数据时,控制器可以查找L2P表以确定数据位于页面中的哪个分片

示例

现在让我们看一个使用示例。假设我们有一个SSD,其规格如下:

* 8个通道
* 4个闪存芯片(每个通道有1个芯片)
* 每个芯片有2个平面
* 1024个块
* 每个块有256个页
* 每个页面包含4个分片

当控制器收到一个LBA请求时,它首先查找L2P表以找到与LBA对应的物理地址。例如,L2P表可能指示数据位于第3个通道、第2个芯片、第1个平面、第500个块、第100个页和第4个分片。

通过查找L2P表并解析P4K中的blk、pg、ch、ce、plane和frag字段,控制器可以快速定位并访问物理存储中的数据。这种组织方式提高了SSD的性能和管理效率,使控制器能够更有效地处理各种存储操作。

位运算解析

详细解析以下代码中每一行的运算

# 解析物理地址字段
/* 将free_physical_location右移20位,
然后取低10位(0x3FF的二进制为1111111111),
得到blk的值。*/
blk = (free_physical_location >> 20) & 0x3FF /*将free_physical_location右移12位,
然后取低8位(0xFF的二进制为11111111),
得到pg的值。*/
pg = (free_physical_location >> 12) & 0xFF /*将free_physical_location右移9位,
然后取低3位(0x7的二进制为111),
得到ch的值。*/
ch = (free_physical_location >> 9) & 0x7 /*将free_physical_location右移6位,
然后取低3位(0x7的二进制为111),
得到ce的值。*/
ce = (free_physical_location >> 6) & 0x7 /*将free_physical_location右移4位,
然后取低2位(0x3的二进制为11),
得到plane的值。*/
plane = (free_physical_location >> 4) & 0x3 /*将free_physical_location取低4位(0xF的二进制为1111),
得到frag的值。*/
frag = free_physical_location & 0xF

这段代码是用来解析一个物理地址字段的,它将一个32位的整数free_physical_location分解成6个部分,分别表示磁盘块(blk)、页(pg)、通道(ch)、通道元素(ce)、平面(plane)和碎片(frag)。

SSD固态硬盘特性术语bit位设置相关推荐

  1. [SSD固态硬盘保养 1] 电脑优化设置,告别卡顿,享受顺畅 (独门 11 招)

    #[国庆活动]带上CSDN一起玩转国庆# 文章目录 前言 1. 务必"4K对齐" 2. 打开写入缓存 3. 避免硬盘塞的太满 4. 启用 Trim 功能 5. 请勿强制关机(断电/ ...

  2. 笔记本联想(Lenovo)G40-70M加装内存和SSD固态硬盘

    笔记本联想(Lenovo)G40-70M加装内存和SSD固态硬盘 系列文章: 笔记本电脑提速之加装内存条.SSD固态硬盘.光驱位换SSD固态硬盘 笔记本ThinkPad E430c加装内存和SSD固态 ...

  3. 笔记本电脑提速之加装内存条、SSD固态硬盘、光驱位换SSD固态硬盘

    笔记本电脑提速之加装内存条.SSD固态硬盘.光驱位换SSD固态硬盘 概述 最近身边几个朋友都加装了SSD固态硬盘,Windows 7操作系统开机速度14秒!速度超越全国99%的电脑! 不只是开机关机速 ...

  4. 笔记本光驱位换SSD固态硬盘之Ghost克隆原来的系统到SSD固态硬盘分区

    笔记本光驱位换SSD固态硬盘之Ghost克隆原来的系统到SSD固态硬盘分区 概述 如果想免去重新安装系统的麻烦可以考虑采取这一操作, 如果你的系统安装了很久,并且运行速度已经很慢了,建议还是重新安装系 ...

  5. 固态硬盘计算机怎么自定义分区,如何设置SSD固态硬盘为主硬盘 怎样把SSD分区设置成主分区?...

    今天给大家带来如何设置SSD固态硬盘为主硬盘,怎样把SSD分区设置成主分区?,让您轻松解决问题. 这类问题只能难住第一次学者安装系统的朋友,而且是谨慎有余不敢于动手实践的那类人!在老鸟看来,根本没有介 ...

  6. 如何进bios设置ssd固态硬盘为第一启动

    对于一些小伙伴来说,安装了双硬盘,但是却不懂如何进bios设置ssd固态硬盘为第一启动,没能将资源进行合理利用.今天快启动小编带大家了解进bios设置ssd固态硬盘为第一启动的相关操作,不懂的小伙伴一 ...

  7. [安装之1] dell设置从ssd启动_如何进bios设置ssd固态硬盘为第一启动

    对于一些小伙伴来说,安装了双硬盘,但是却不懂如何进bios设置ssd固态硬盘为第一启动,没能将资源进行合理利用.今天快启动小编带大家了解进bios设置ssd固态硬盘为第一启动的相关操作,不懂的小伙伴一 ...

  8. 固态硬盘计算机怎么自定义分区,如何将SSD固态硬盘设置为主硬盘,如何将SSD分区设置为主硬盘?...

    这种问题只会使初学者首次安装该系统变得困难,他们是那种非常谨慎且不敢实践的人!在那只老鸟的眼中,不需要介绍它们. 这是必须解决的两个连续问题,因此请一起编辑它们并与新手朋友分享. 毕竟,安装系统比解决 ...

  9. dell设置从ssd启动_如何进bios设置ssd固态硬盘为第一启动

    对于一些小伙伴来说,安装了双硬盘,但是却不懂如何进bios设置ssd固态硬盘为第一启动,没能将资源进行合理利用.今天快启动小编带大家了解进bios设置ssd固态硬盘为第一启动的相关操作,不懂的小伙伴一 ...

最新文章

  1. 致命错误: zlib.h:没有那个文件或目录
  2. 高频运行脚本案例 $$
  3. Mac OSX中memcached安装测试
  4. 捷波朗STORM耳机设置中文_2020年 除了Airpods pro以外无线降噪蓝牙耳机如何选?五款热门入耳式蓝牙降噪耳机推荐...
  5. 【华为云技术分享】《跟唐老师学习云网络》— Ping喂报文
  6. tplink无线受限 服务器无响应,tplink怎么设置密码(tplink服务器无响应)
  7. ant design table column 设置width不生效解决方案
  8. npm 包管理器的使用
  9. 转:有时间看看算法书
  10. linux信号灯超时时间已到,急!!信号灯超时时间已到错误又出来了!!!!
  11. bin文件转dat文件
  12. 360如何查看计算机配置文件,win7中怎么查看路由器配置文件config.bin
  13. 【Kubernetes】k8s使用stargz光速分发镜像
  14. mmpi明尼苏达多项人格测验量表解读
  15. Java UI设计 计算三角形周长
  16. python定义变量不赋值_python定义变量
  17. 练习:银行复利计算(用 for 循环解一道初中小题)
  18. 为什么说Java中只有值传递
  19. 用阿里云安装docker
  20. python如何爬取动态网页数据

热门文章

  1. 五子棋(人机)-粗暴版AI
  2. miui免root冻结,免root停用miui应用
  3. LeetCode 460. LFU 缓存 -- 哈希查询+双向链表
  4. win10电脑鼠标右键菜单中的选项提示没有关联的应用应用来执行操作以及工具栏点击没反应的解决方案
  5. 更换VScode背景图,设置VScode背景为你喜欢的图片
  6. 使用canvas画三角形,圆形,半圆,八卦
  7. TCP/IP网络编程:计算器服务器端/客户端
  8. wfp 禁用ip_WFP 层要求和限制
  9. python中一切都是对象对吗_在 Python 中一切皆对象,它完全支持()
  10. 阿卜杜拉国王科技大学的计算机,阿卜杜拉国王科技大学,沙特国王大学开设专业。...