基于k位运算的闪存磨损均衡算法

一种利用k位运算的闪存存储设备磨损均衡算法

摘要

闪存存储设备由于体积小、功耗低和高性能,被广泛应用于移动消费电子产品中。通常,闪存存储设备由NAND闪存组成。与传统的磁盘相比,NAND闪存需要额外的擦除操作,且其块具有有限的擦除次数。为了延长其耐久性,已提出了各种磨损均衡算法。然而,这些算法在管理块状态时会引发大量的读/写/擦除操作,并消耗大量内存资源,因为它们未考虑闪存转换层的特性。为解决这些问题,本文提出了一种针对基于日志的闪存转换层的新磨损均衡算法。在基于日志的闪存转换层中,由于日志块频繁更新和擦除,因此保留很少被删除的冷块作为下一个日志块,从而使所有块被均匀擦除。此外,提出的算法通过利用k位擦除表来减少内存资源的使用量,该表仅需少量k位擦除标志即可管理其块擦除状态。通过与相关磨损均衡算法进行多种实验,本文证明了提出的磨损均衡算法1的优越性。

索引术语

磨损均衡,闪存转换层,闪存存储设备,NAND闪存

一、引言

如今,闪存存储设备(如多媒体卡和固态硬盘)因其体积小、重量轻、功耗低而被广泛应用于移动消费电子产品中。此外,闪存存储设备能够快速访问存储的数据,且无延迟。通常,它由NAND闪存构成,并继承了NAND闪存的许多物理特性。

NAND闪存的一个主要特点是,与传统磁盘不同,必须执行擦除操作,因为闪存无法就地覆盖数据。读/写操作以页为单位进行,而擦除操作则以块为单位进行,每个块由固定数量的页组成。擦除操作比其他操作慢得多。此外,由于闪存块的擦除次数有限,闪存存储设备在主机和闪存之间内部采用了一种称为闪存转换层(FTL)的中间软件层,以处理上述特性[1]‐[3]。

FTL的主要功能是将主机请求中的逻辑到物理地址映射转换到物理闪存中,从而使闪存存储设备能够被识别为块设备。由于闪存在进行就地更新时无法允许此类操作,FTL会将每个来自主机的写请求重定向到一个预先擦除过的空页。为此,已提出了多种映射算法,而基于日志的FTL变体因其多种优势[4]‐[7]而在闪存存储设备中被广泛采用。

FTL的另一个重要功能是磨损均衡,它通过均衡所有块的擦除次数来延长闪存的寿命[8]。闪存中的擦除操作发生在执行垃圾回收以回收空闲块的过程中。当闪存中没有足够的空间存储数据时,FTL会启动垃圾回收,将牺牲块中的有效数据复制到一个空块中,然后擦除该牺牲块。

对特定块进行频繁的擦除操作会降低闪存的整体寿命。然而,大多数垃圾回收算法更注重性能而非闪存的耐久性,因为它们需要大量的读/写操作。

如今,由于近期的闪存存储设备采用MLC或TLC闪存,其价格更低但耐久性比SLC闪存差,因此延长寿命的重要性日益增加。它们的寿命分别约为SLC闪存的1/10和1/100。为了提高闪存的耐久性,已提出各种垃圾回收[9]‐[12]和磨损均衡算法[13]‐[17]。然而,这些方法仅简单考虑块擦除次数的均匀性,而未考虑FTL的特性,例如地址映射算法。

本文提出了一种用于基于日志的闪存转换层的新型磨损均衡算法。在基于日志的FTL中,所有块被分为两类:存储首次插入数据的数据块和临时存储对应数据更新数据的日志块。

块。当日志块中没有空页时,将调用垃圾回收来回收日志块。根据基于日志的FTL的特性,显然日志块被频繁地删除。受此启发,提出的算法基本上为下一个空闲日志块分配擦除次数最少的块,从而实现所有块的均匀擦除以达到磨损均衡。此外,通过利用一种新的k位擦除表(该表使用少量内存资源识别擦除最多和最少的块),尚未被擦除的冷块被迁移到空的热块中。由于提出的磨损均衡算法是针对基于日志的FTL设计的,因此与相关工作相比,它可以更快地执行,并且所需的闪存操作更少。

本文的其余部分组织如下。第2节回顾了背景与相关工作。第3节详细描述了提出的磨损均衡算法。实验结果在第4节中展示。最后,本文在第5节进行总结。

II. 背景与相关工作

A. 闪存转换层

闪存存储设备由用于存储用户数据的NAND闪存和用于管理闪存的控制器组成,如图1所示。当主机发出读/写请求时,编程在只读存储器中的FTL通过存储在静态随机存取存储器中的映射表将来自主机的逻辑地址转换为闪存上的物理地址。闪存存储设备的性能在很大程度上受其映射算法的影响。根据管理单元的不同,映射算法主要分为三类:页级映射、块级映射和混合映射[3]。

示意图0

页级映射将主机的每个逻辑扇区映射到闪存上的一个空物理页,以避免就地更新。页级映射能够快速执行所有写请求,而无需进行擦除操作。然而,随着存储容量的增加,映射信息的大小显著增加,因为每个逻辑扇区都需要其独立的物理地址信息。

存储容量的增加而增大,因为每个逻辑扇区都需要其自身的物理地址信息。相比之下,块级映射仅将来自主机的逻辑块映射到闪存上的物理块。因此,映射表的大小非常小,因为所有逻辑扇区都可以通过仅有的块地址进行访问。尽管它使用的内存资源较少,但在覆盖数据时的写请求会引发许多缓慢的闪存擦除操作。因此,结合这两种映射技术的混合映射算法主要部署在实际存储系统中。

一种基于日志的FTL [4], ,属于混合映射算法的一种,因其较小的映射信息开销和高性能而被广泛应用于闪存存储系统。因此,许多基于日志的FTL变体已被实现用于闪存 [5]‐[7]。基于日志的FTL中的块由多个通过块级映射管理的数据块和少量通过页级映射维护的日志块组成。插入的数据首先写入数据块,而需要更新的数据则临时存储到日志块中,以避免就地覆盖数据。当日志块中没有足够空间插入数据时,将触发垃圾回收。垃圾回收是指将特定日志块及其相关数据块中的有效数据进行合并,然后擦除牺牲块。

传统的垃圾回收算法更优先考虑清理成本,而非均衡磨损的程度。因此,在调用垃圾回收时,会选择包含大量无效页的块作为牺牲块,以减少读/写操作的次数。然而,随着价格较低但耐久性较差的MLC/TLC闪存使用量不断增加,闪存耐久性的重要性也在日益提升。

B. 磨损均衡算法

为了提高闪存的耐久性,已提出了多种垃圾回收算法。

成本效益策略(CB)[9]根据公式 age · (1‐u) / 2u 选择最有价值的块,其中u 表示有效页的比例,age 表示自最近一次修改以来的时间。也就是说,CB在执行垃圾回收时选择最旧的(即最近最少修改的块)且包含大量无效页的牺牲块。最少优先垃圾回收策略(LFGC)[10]将所有脏块按擦除操作次数的顺序链接成一个列表,然后选择擦除次数最少且具有最多无效页的块作为牺牲块。交换感知垃圾回收(NSAGC)[11]将被修改的有效页标记为潜在无效页,因为这些被修改的有效页可能在不久的将来被无效化。它还考虑了磨损均衡程度。因此,NSAGC在执行垃圾回收时选择具有大量潜在无效页和最多无效页且很少被擦除的块作为牺牲块。文件感知垃圾回收(FaGC)[12]同样考虑了磨损均衡

均衡。当最大擦除次数与最小擦除次数之间的差异超过预设阈值时,将选择擦除次数最少的块作为牺牲块进行垃圾回收。

由于这些垃圾回收策略基本上是为执行页级操作的闪存文件系统而开发的,因此需要大量内存资源来维护页和块状态(例如,无效页数量和擦除次数)。此外,它们不会选择尚未经擦除且没有任何无效页的块作为牺牲块,因为在执行垃圾回收时,该块需要大量的读/写操作来复制有效数据。然而,这种被称为冷块的块会导致擦除次数差异增大。换句话说,由于除冷块以外的块会迅速磨损,因此必须在闪存存储设备中应用磨损均衡。

在更细致地考虑冷块的基础上,已开发出磨损均衡算法以实现对所有块的均匀擦除。磨损均衡主要有两种方法:冷块迁移[13]‐[15] ,以及擦除次数最多的块与擦除次数最少的块之间的块交换[16]‐[17]。本文介绍了两种基本的磨损均衡算法,分别为作为冷块迁移算法的静态磨损均衡和作为块交换算法的双池磨损均衡。

为了使擦除次数更加均匀,静态磨损均衡(SW)[13]

在块的总擦除次数与已擦除块的数量之比超过预设阈值时,将冷块中的数据迁移到已擦除块中,从而平衡所有块的擦除次数。为了以较少的内存资源检测冷块,SW采用如图2所示的块擦除表(BET)。SW通过BET中的1位擦除标志来识别哪个块已被擦除。初始时,BET中的每个擦除标志均设置为0,表示该块(或附近块的组)尚未被擦除。当某个块被擦除时,其在BET中的擦除标志被设置为1,且总擦除次数增加1。

示意图1

如图2所示,具有PBN 2和42的块已被擦除,其余块尚未被清除。在进行磨损均衡的冷块迁移时,随机选择一个擦除标志为0的块(例如PBN为2或42的块)作为牺牲块。

所选的冷块被迁移到已随机选定的已擦除块中,直到擦除比率降低至预设阈值以下。冷块迁移完成后,所有擦除标志均被设置为0。通过这种方式,SW保持了块耐久性的均衡。

由于块擦除表(BET)仅为识别其对应的块擦除状态分配了一个1位擦除标志,因此检测冷块的准确性不高。

为了更均匀地擦除所有块,双池磨损均衡(DP)[16]

将所有块划分为热池和冷池,其中热池是擦除次数较多的块的队列,冷池是擦除次数较少的块的队列。当热池中的最大擦除次数与冷池中的最小擦除次数之差超过预设阈值时,热/冷池中的块将相互交换。即,热池中擦除次数最多的块与冷池中擦除次数最少的块进行交换。由于冷块已被移入热池,因此在其擦除次数增加之前无法迁回冷池。

示意图2

如图3所示,双池结构中的所有块分别维护在热池和冷池中。假设预设阈值为30,由于热池的最大擦除次数为31,冷池的最小擦除次数为0,因此执行冷热块交换。在这种情况下,物理块号26的块和物理块号13的块相互交换。

尽管磨损均衡程度比软件更精确,但由于频繁调用读/写操作,块交换会降低FTL的整体性能。此外,双池结构需要比软件更多的内存资源,因为它除了维护双池外,还需维护所有块的擦除次数。

III. 提出的磨损均衡算法

提出的磨损均衡算法旨在通过考虑基于日志的FTL的特性并以较少的内存资源实现所有块的均匀擦除,从而降低操作成本。大多数磨损均衡算法仅简单依赖于擦除次数的差异,而不考虑FTL映射算法。

由于基于日志的FTL中的日志块频繁写入更新的数据,为日志块分配的空块会迅速被填满并擦除。鉴于基于日志的FTL的这一特性,提出的算法为新的日志块分配擦除次数最少的块,从而在不执行额外磨损均衡的情况下均匀擦除所有块。此外,为了减少管理所有块擦除状态的开销,新引入了一种k位擦除表(k‐BET)。与现有的磨损均衡算法相比,k‐BET以较小的内存资源更精确地分类擦除最多和最少的块。

A. 操作细节

提出的磨损均衡算法的步骤包括空闲块分配、冷热块分类和冷块迁移。为了均匀擦除所有块,该算法始终从k‐BET中找到擦除次数最少的空块作为空闲块进行分配。

k‐BET用于以较小的内存资源管理所有块的擦除状态,并识别擦除最多和最少的块。当k‐BET中出现擦除最显著的块时,将执行冷块迁移。

示意图3

如图4所示,基于日志的FTL的所有块由数据块地址表和日志块地址表进行维护。插入的数据首先被写入数据块,并在块级映射中进行管理。如果插入的数据已存在于数据块中,则该数据将被临时存储到日志块中,以避免在基于日志的FTL中进行就地更新。写入日志块中的数据通过页级映射进行管理。当新分配一个日志块时,提出的算法总是从k‐BET中找到擦除次数最少的块作为该日志块。

有必要迁移充满有效页的冷块,因为仅通过分配擦除次数最少的空闲块无法使所有块被均匀擦除。如果k‐BET中的每个块状态由k位擦除标志组成,则在某个块被擦除2k次后将执行冷块迁移。当k‐BET中出现最大值(例如,擦除标志为“1111”,其中k为4)时,图4中擦除次数最少的已使用块(PBN 4)将被迁移到一个空闲块,然后该块(PBN 4)被清除并重新分配给新的日志块。否则,将在不进行冷块迁移的情况下,将k‐BET中找到的擦除次数最少的空闲块分配给日志块。

B. 基于k位擦除表(k-BET)的块分类

现有的磨损均衡算法通过所有块的擦除次数差异来执行。随着闪存容量的增加,管理块状态的开销也随之增加。

为了减轻该开销,所提出的磨损均衡算法采用较小的k位擦除标志来进行冷热块分类。当一个块被擦除时,其在k‐BET中的擦除标志加1。热块是擦除次数最多的块,其所

有标志均被置为1。也就是说,当某个块被擦除2 k 次时,该块在k‐BET中被识别为热块。此时,进行冷块迁移

执行此操作。相反,冷块是所有标志位均为0的擦除次数最少的块,即自k‐BET初始化以来尚未被擦除的块。如果不存在任何冷块,则k‐BET中的所有标志位将右移,直到出现冷块为止。随着值k的增加,冷块迁移的首次执行时间被推迟,检测冷块的准确性提高,但需要更多的内存资源。

示意图4

图5展示了k‐BET中的块状态。如果物理块号1的擦除标志被设置为“1110”,并且该块被擦除,则其擦除标志将增加至“1111”。此时,由于物理块号1的块变为热块,因此执行冷块迁移。为了检测冷块,提出的磨损均衡算法按顺序遍历k‐BET中的所有擦除标志。物理块号42的块中的有效数据被迁移到擦除次数最多的空闲块中,并且由于其擦除标志为“0000”,该块被删除。通过这种方式,尚未被擦除的冷块被迁移到擦除次数最多的空闲块中,而已擦除的冷块则保留作为下一个日志块使用,从而实现所有块的擦除次数均衡。迁移完成后,物理块号42的块的擦除标志将增加。如果该块是最后一个冷块,则所有块的擦除标志都将减少,直到至少出现一个冷块为止。由于物理块号41的块的擦除标志为“0001”,因此在图5的情况下,仅对所有擦除标志进行一次递减操作。否则,将继续迁移其他冷块,直到所有冷块都被消耗完毕。

C. 基于日志的FTL的详细实现

示意图5

图6展示了写操作的伪代码。主机发出带有逻辑扇区号LSN的写请求。在第1行中,通过LSN计算得到逻辑块号LBN和页偏移量p。在第2‐7行中,如果块映射表中为LSN分配了物理块号PBN,则执行写操作。第5‐7行表明,如果偏移量为p的页为空,则将数据写入PBN的偏移量p处;否则,数据将被写入日志块中。当日志块中没有空页时,将触发垃圾回收以进行块回收。第9‐11行列出了没有与LSN相关的PBN的情况:从k‐BET中找到擦除次数最少的空闲块,并将其分配为数据块,同时在块映射表中更新该分配块的地址信息PBN以对应LSN,随后将数据存储到PBN的偏移量p处。

示意图6

为了执行所提出的磨损均衡,需要进行擦除操作,如图7所示。基本上,当进行垃圾回收以实现块回收时,块将被删除。在第1‐2行,当具有PBN的块被擦除时,k‐BET中该PBN的擦除标志增加。在第3‐6行,如果热块的擦除标志全部为‘1’,则执行冷块迁移。在k‐BET中找到冷块,然后将其有效页复制到擦除次数最多的块中,即刚刚擦除的热块。在有效数据迁移后,冷块被删除。在第7行,已擦除的冷块被分配为下一个日志块。最后,在第8‐10行,如果k‐BET中没有冷块,则k‐BET中的所有擦除标志都将递减,直到冷块出现。

IV. 实验结果

A. 实验设置

为了评估所提出算法的性能,已在基于NAND闪存的参考板上实现了多种磨损均衡算法。该参考板的控制器运行频率为87.5兆赫,并配备了64兆字节SDRAM和两个32GB MLC NAND闪存模块。每个闪存模块的块由32个页组成,块大小为128千字节。

在此参考板上,FAST [5] 实现为基于日志的FTL,包含多种磨损均衡算法,其中包括提出的算法(k位WL)。这些算法包括无磨损均衡(NOWL)、贪婪算法(GR)、SW、双池结构(DP)和基于组的混合磨损均衡(GHWL)[14]。GR在块回收期间始终分配擦除次数最少的空闲块。GHWL执行随机冷块迁移和热/冷块交换。通常情况下,磨损均衡的阈值设置为10。换句话说,当最大擦除次数与最小擦除次数之差达到10时,便执行磨损均衡。提出的k位WL的块具有4位擦除标志。为了测量磨损均衡程度,嵌入式板上的块数量限制为10000。

示意图7

为了估算真实值,实验中使用了从文件系统中提取的四个实际跟踪。图8和表1分别显示了主机发出的写请求频率以及各工作负载的属性。

表 I 工作负载的属性

跟踪 已分配页数 已分配页面(LSN) 写请求的比率频繁地重写页
工作负载A 214,621 242,923,370 19%
工作负载B 157,308 11,402,701 9%
工作负载C 105,118 28,594,808 40%
工作负载D 194,837 7,821,539 14%

如表1所示,工作负载A的主机在执行了242,923,370次写请求后分配了214,621个页(LSN)。工作负载B、C和D的主机分别在执行了11,402,701、28,594,808、7,821,539次写操作后,分配了157,308、105,118、194,837个页。在工作负载A中,大约19%的页被频繁重写,超过平均写入次数。换句话说,在该跟踪中,包含约81%已分配页面的块很少被擦除。在工作负载B、C和D中,分别约有9%、40%和14%的写请求被重复执行。如图8所示,工作负载A的模式显示在某些特定页面上执行了密集的写操作。工作负载B和D的模式似乎相似,且它们的重复写请求分布的页数比工作负载A更多。与工作负载A、B和C不同的是,在工作负载C中,许多已分配页面被重写。

B. 磨损均衡程度

图9、10、11 和 图12 显示了写请求完成时的擦除次数分布。X轴和Y轴分别表示物理块号(PBN)和擦除次数(EC)。

示意图8

图9显示了在插入和重写大量数据时擦除次数(EC)的分布情况。NOWL和GR的平均擦除次数均为1999.83,且GR的偏差小于NOWL。尽管GR中擦除次数的分布有所降低,但很少更新的块仍然保持为冷块,因为GR只是简单地将擦除次数最少的块分配作空闲块。SW、DP、GHWL和k位WL的平均擦除次数分别为2063.86、2009.98、2108.75和2033.97。四种磨损均衡算法均实现了对所有块的均匀擦除,消除了冷块现象,但SW和DP的擦除次数偏差大于GHWL和k位WL。如果降低SW和DP的阈值,擦除次数的差异会减小,但平均擦除次数也会增加。最终,GHWL和k位WL均表现出良好的擦除次数均衡性,但k位WL的平均擦除次数低于GHWL,因为k位WL在考虑基于日志的FTL特性的基础上减少了所需的擦除操作次数。

示意图9

图10显示了在插入少量数据且重写数据量少于工作负载A时的擦除次数分布。从图10(a)和如图10(b)所示,当插入的数据量和重写数据率较小时,可以确定在没有磨损均衡算法的情况下,冷块很少被擦除。SW、DP、GHWL和k‐bitWL的平均擦除次数分别为781、789、778、772,⋯⋯和⋯⋯。在这种情况下,DP的平均擦除次数最少,但其偏差高于GHWL和k‐bitWL。DP的磨损均衡程度仅受预设阈值的影响。随着插入数据量的减少,SW由于随机选择牺牲块进行擦除,无法均匀擦除所有块。尽管GHWL和k‐bitWL在擦除次数上表现出良好的均衡性,但k‐bitWL比GHWL执行的擦除操作更少,因为k‐bitWL仅为下一个空闲块分配已擦除日志块。

示意图10

图11显示了在多个页中重写大量数据时擦除次数(EC)的分布情况。此时,大多数磨损均衡算法会均匀擦除所有块,因为该跟踪中的冷块较少。SW、DP、GHWL和k位WL的平均擦除次数分别为544.42、538.63、547.34和539.01。与图10的结果类似,DP的平均擦除次数最少,但其偏差远高于GHWL和k位WL。GHWL和k位WL的擦除次数偏差分别为2.82和2.49。此外,k位WL的最大擦除次数小于GHWL。从本案例的实验结果来看,由于大量日志块被频繁用于冷数据,k位WL的整体性能优于其他磨损均衡算法。

如图12所示,结果似乎与图10的结果类似,因为它们具有相似的数据模式。NOWL和GR中的平均擦除次数等于97.75,而GR的偏差小于NOWL。SW和双池结构的平均擦除次数接近98.5,GHWL的平均擦除次数等于103.5,k位WL的平均擦除次数等于97.88。四种磨损均衡算法均能均匀擦除所有块,但SW和双池结构的擦除次数分布大于GHWL和k位WL。最后,GHWL和k位WL表现出良好的擦除次数均衡性,但由于GHWL需要大量擦除操作来进行冷迁移,k位WL的最大擦除次数小于GHWL。

根据图9、10、11和12的结果可知,k位WL通过考虑基于日志的FTL的特性,能够以较少的块擦除次数更均匀地擦除所有块。

C. 写入放大因子

为了衡量性能以及均衡磨损,计算了写入放大因子(WAF)。由于闪存存储设备中存在先擦除后写入的限制,主机写请求的逻辑数据量与写入闪存的物理数据量之间会出现差异。该值用WAF表示,即闪存中实际写入次数与主机写请求次数的比值。

图13显示了每个主机的写请求完成后测得的写入放大因子。NOWL和GR中的所有写入放大因子均相等,且小于其他四种磨损均衡算法,因为在进行磨损均衡时未调用额外的擦除操作。在任何情况下,GHWL的写入放大因子都远高于其他算法,因为GHWL为了平衡擦除次数而擦除了大量块。除工作负载D外,SW的所有写入放大因子均高于GHWL和k位WL,因为SW由于块擦除表尺寸较小而无法精确选择冷块。除工作负载A外,k位WL的所有写入放大因子均小于双池结构,因为k位WL同时考虑了基于日志的FTL的特性以及块擦除状态。尽管k位WL在工作负载A下的写入放大因子大于双池结构,但k位WL能更均匀地擦除所有块。

从这些结果可以看出,由于k位WL考虑了基于日志的FTL中日志块频繁被擦除的特性,因此在k位WL中调用的操作更少。

D. 管理块状态的开销

为了衡量管理所有块的擦除状态的开销,表2展示了内存资源的使用量,其中i、n和k分别表示整数的大小、总块数以及k‐BET中擦除标志的大小。

表II 内存资源使用情况

磨损均衡算法 使用量
GR n · i 字节
SW n 位
DP n · 2i 字节
GHWL n · 2i 字节 + n 位
k位WL n · k 位

从所有实验结果和系统分析来看,k位WL 使用较少的内存资源即可实现对所有块的均匀擦除,并且比其他磨损均衡算法执行得更快。

五、结论

本文提出了一种用于基于日志的闪存转换层的新型磨损均衡算法。该算法通过使用较少的内存资源为日志块分配擦除次数最少的块,从而增强闪存存储设备的耐久性。特别是,该算法迁移冷块并将冷块分配给下一个日志块,以提高闪存的耐久性。通过考虑基于日志的闪存转换层的特性,与相关技术相比,提出的磨损均衡算法能够快速执行。最后,通过各种实验,提出的磨损均衡算法在磨损均衡性、性能以及内存资源使用量方面均表现出优越性。未来的工作将针对其他闪存转换层进一步改进提出的磨损均衡算法。

【信息科学与工程学】计算机科学与自动化——第十八篇 存储系统设计——6 存储算法(1)分布式存储相关算法 存储内容 阅读详情

相关推荐

【信息科学与工程学】【数据中心】第三十二篇 云数据中心的计算/存储/网络的核心挑战01

状态方程: SOCk+1​=SOCk​−Qn​ik​Δt​;: 三相电流变换到αβ坐标系: iα​=32​​(ia​−21​ib​−21​ic​), iβ​=32​​(23​​ib​−23​​ic​). 计算瞬时有功功率p和无功功率q,经低通滤波器分离直流分量,反变换得基波电流,差值即为谐波指令。: 节点i的信念 bi​(xi​)=ϕi​(xi​)∏j∈N(i)​mji​(xi​), 消息 mij​(xj​)=∑xi​​ϕi​(xi​)ψij​(xi​,xj​)∏k∈N(i)\j​mki​(xi​).

weixin_49199313的博客 219

磁盘碎片与闪存摩擦均衡介绍

前言: 存储设备传统的有机械硬盘,新型的有各种闪存:U盘、CF卡、SM卡、SD/MMC卡、记忆棒、XD卡、MS卡、TF卡、PCIe闪存卡,还有ssd固态硬盘。由于物理结构上的差异,它们在可靠性上的差异都非常大。 (一)机械硬盘: 相比与闪存,机械硬盘在机械结构上要复杂很多,也正是因为它复杂的机械结构,导致它在性能和可靠性上有很大的缺陷。磁盘的物理结构可以查看博客《硬盘内部硬件结构和工............

Biao 5268

【信息科学与工程学】计算机科学与自动化 第二百三十三篇 凤凰架构01

编号类型领域系统软件/硬件或系统集成方案及系统架构模块子模块函数名称/算法名称算法的数学分析及计算机体系架构及数据结构与算法详细设计及参数列表及数值范围设计关联知识1共识算法分布式基石状态机复制架构:Proposer/Acceptor/Learner 多节点角色模型,基于操作转移(Operation Transfer)分布式共识PaxosPaxos 协议(Prepare/Promise/Accept/Accepted 两阶段)数学基础:多数派(Quorum)投票,基于鸽巢原理保证 W+R>N 时读写集合必有

weixin_49199313的博客 265

Nand Flash管理算法介绍之FTL简介

和传统磁盘相比,Nand Flash存储设备存储延迟低、功耗低、更高的存储密度、抗震型号更好和噪声低。但是,由于Nand Flash的特性影响(读写擦的单位不一致,每个块有P/E次数限制),Nand Flash不能直接通过简单的接口转换就拿来使用。所以我们需要在Nand Flash上增加一个管理软件FTL(Flash Translation Layer)进行管理,对外就是一个黑盒子,上层应用可以通

忠s 2万+

【信息科学与工程学】计算机科学与自动化——第十篇 芯片设计30 芯片中的数学1

所有涉及货币流动的岗位都受到严格的法律法规和行业准则约束,包括中国人民银行的各项货币政策工具管理规定、银行间市场交易规则、支付清算系统管理办法以及企业司库管理的相关指导意见。:在货币流动链条中,距离资金源头(央行投放)或关键流转节点越近的岗位,对资金的控制力、经手规模和影响力越大。处于资金流转的“管道”中,虽不直接决定资金量,但负责海量资金交易的安全、准确、高效清算,是货币流通的“基础设施”维护者。《关于规范金融机构资产管理业务的指导意见》(资管新规),要求信托业务打破刚性兑付,向净值化、标准化转型。

weixin_49199313的博客 412

SpringBoot+Vue+Mysql社区医院信息平台(源码+文档)

SpringBoot+Vue+Mysql学生宿舍信息管理系统 WEB端软件项目(源码+文档) 项目包含:①完整源码(后端+管理后台+用户前台);②数据库脚本文件;③万字论文文档;④开题报告;⑤答辩PPT;⑥项目运行视频教程。 项目架构: B/S 架构、MVC 分层设计 技术栈: Java、MySQL、SpringBoot、MyBatis-Plus、Token 权限校验、管理后台 Vue+ElementUI+ECharts、用户前台 Layui+jQuery、Maven 构建。 一、角色设计 学生用户: 注册登录、浏览宿舍信息、查询宿舍安排、在线报修、缴费查询、失物招领、桶装水预订、评论交流、收藏等。 商家用户: 注册登录、桶装水品牌与商品信息维护、预订订单查看与处理。 维修人员: 注册登录、查看待处理报修、接单维修、填写报修处理结果与进度反馈。 管理员: 学生管理、班级管理、宿舍信息管理、宿舍安排管理、报修处理管理、缴费信息管理、卫生检查与文明宿舍管理、失物招领管理、桶装水与商家管理、维修人员管理、公告资讯与轮播图管理等。 二、前台功能模块(学生端) 1. 首页展示:轮播图、宿舍公告、最新动态推荐、常用服务快速入口 2. 宿舍信息模块:宿舍列表、楼栋与房间条件筛选、宿舍详情查看、我的宿舍安排查询 3. 在线报修模块:在线提交宿舍设施报修申请、上传故障描述、查看报修进度与维修处理结果 4. 缴费模块:水电等缴费记录查询、缴费状态查看 5. 卫生检查与文明宿舍:宿舍卫生检查结果公示、文明宿舍展示 6. 失物招领模块:失物信息发布、招领信息发布、详情查看、评论互动 7. 桶装水预订:桶装水品牌与商品浏览、在线预订、我的预订记录查询 8. 假期留宿:假期留校申请提交、申请记录查询 9. 评论与收藏:信息评论、查看他人评论、评论回复互动、收藏感兴趣的内容 10. 个人中心...

内存分配算法(FF、BF、MF)

动态分区分配 最近在学习操作系统内存分配方面的知识点,小小的总结一下知识点。 根据进程的实际需要,动态的为之分配内存空间。在实现动态分区分配时,将涉及到分区分配中所用到的数据结构、分区分配算法和分区的分配与回收操作三方面的问题。 我的理解是,动态分区分配是按照作业需要的主存空间大小来分配的,当要装入一个作业时,根据作业需要的主存量查看是否有足够的空闲空间,若有,则按需要量分割一个分区分配给该作...

musite 小白成长杂记 2万+

YOLOv8作物病害检测实战源码

这是一套基于YOLOv8n的农田病虫害目标检测系统,对叶片照片做目标检测,识别健康叶片、褐斑病、白粉病、锈病四类,并给出对应防治建议。全流程纯CPU可跑,配套交付完整Python源码、9章实战教程(md/html/pdf三种格式)、100张自造样本及YOLO标签、训练曲线与混淆矩阵截图、Tkinter界面和答辩PPT。 系统围绕五项功能展开:同一套推理逻辑覆盖图像、视频、摄像头三种来源;图形界面选文件即检测,画面叠彩色框标注病名与置信度,右侧面板同步给出症状与防治措施;检测记录自动写入CSV,统计页一键生成四类病害占比饼图;训练结束自动产出损失与精度曲线;内置防治建议文案库,检测命中即回填面板。 选型用YOLOv8n nano档,参数量约320万、权重约6.2MB,CPU单帧几十毫秒,小样本训练5到8分钟完成。数据由data_gen.py程序化绘制100张叶片图,固定随机种子,重跑分布一致,不依赖公开数据集。依赖全部锁版本,教程第7章整理了19条真实报错及排查方法,第8章给出换模型档、换PlantVillage数据集的迁移路径。 适合做计算机视觉方向课程设计或毕业设计的学生,也适合智慧农业方向想了解检测模型如何落进业务面板的学习者。不需要GPU,不需要系统学过目标检测,教程第3章会按需补齐原理。 使用时先pip install -r requirements.txt装好依赖,download_data.py下载预训练权重,data_gen.py生成样本后train.py训练,完成后用main.py infer批量检测或main.py gui启动界面。

伙伴(buddy)算法及位图

伙伴(buddy)算法,它不能根据需要从被管理内存的开头部分创建新内存。它有明确的共性,就是各个内存块可分可合,但不是任意的分与合。每个块都有个朋友,或叫“伙伴”,既可与之分开,又可与之结合。伙伴分配程序把内存块存放在比链接表更先进的数据结构中。这些结构常常是桶型、树型和堆型的组合或变种。一般来说,伙伴分配程序的工作方式是难以描述的,因为这种技术随所选数据结构的不同而各异。由于有各种各样的具有已知...

Unique-You的博客 1万+

数据挖掘实战:决策树 + 聚类 + 关联规则,零 Key 离线可跑(Python 源码)

数据挖掘实战包。用 Python 标准库实现 CART 风格决策树、K-Means 聚类与 Apriori 关联规则,在虚构「星河便利店」会员表和购物篮上跑通分类、分群与购物篮分析,并给出准确率、轮廓系数、支持度/置信度/提升度。零第三方依赖、零 API Key 即可离线跑通。含 4 个样例、离线冒烟、中文 README(含「使用方法」)。均为作者原创可运行源码。MIT。作者 blog.youkuaiyun.com/mtl1994

科技中介服务机构在技术供需对接中如何实现服务流程的自动化与标准化?.docx

科技中介服务机构在技术供需对接中如何实现服务流程的自动化与标准化?

高校技术转移办公室人员如何系统化管理科技成果信息?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

产业园区如何高效对接企业技术需求与高校科研成果?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

科技中介服务机构如何构建标准化、模块化的智能服务工具?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

国央企创新负责人如何快速掌握本地科技资源分布与匹配情况?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

国央企创新负责人如何实现科技成果的精准识别与高效筛选?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

fab-pm-optimizer-python-entry-py39-20261021-v1-1-0

fab-pm-optimizer-python-entry-py39-20261021-v1-1-0

电流模架构Bandgap设计与仿真

带隙基准作为集成电路中一个重要模块,被广泛应用在低压差线性稳压(LDO)、充电电池保护芯片和通信电路、射频收发器、flash存储器等多种模拟及数模混合集成电路中,并且是片上集成系统(SOC)芯片中不可或缺的部分,为整个芯片提供精确的电压参考点............

qq_50968231的博客 5万+
上一篇: 41、打造与推广你的网站:全方位指南
下一篇: 10、数值方法与傅里叶分析入门
杠精协会主席
博客等级 码龄3年 75粉丝 1287原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值