Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 用于跟踪对2个幂32元素的写入的节省空间的算法_Algorithm_Flash_Storage_Firmware_Scsi - Fatal编程技术网

Algorithm 用于跟踪对2个幂32元素的写入的节省空间的算法

Algorithm 用于跟踪对2个幂32元素的写入的节省空间的算法,algorithm,flash,storage,firmware,scsi,Algorithm,Flash,Storage,Firmware,Scsi,这是我在工作中遇到的要求之一。我们在内存中分配了一个(2次方32)连续的4294967296整数作为数组,其功能是在另一个表中提供映射。其中一些条目的写入频率高于其他条目。我们希望跟踪热点并提供近似直方图。 问题是,这将在固件中实现,并且不能使用太多内存 资料: 该映射用于scsi lba从主机到目标驱动器或闪存上的lba 假设我们有1MB的空间来处理跟踪冷热信息所需的元数据。除了显示是否写入的位映射之外,我们如何有效地使用它。我们可以根据内存用于跟踪的方式对收集的数据进行扩展,并对其准确性进行

这是我在工作中遇到的要求之一。我们在内存中分配了一个(2次方32)连续的4294967296整数作为数组,其功能是在另一个表中提供映射。其中一些条目的写入频率高于其他条目。我们希望跟踪热点并提供近似直方图。 问题是,这将在固件中实现,并且不能使用太多内存

资料: 该映射用于scsi lba从主机到目标驱动器或闪存上的lba


假设我们有1MB的空间来处理跟踪冷热信息所需的元数据。除了显示是否写入的位映射之外,我们如何有效地使用它。我们可以根据内存用于跟踪的方式对收集的数据进行扩展,并对其准确性进行数学扩展。

根据您的要求,您需要在直方图中将每个条目分开,否则您的信息就没有真正的用处。因此,您需要存储有关4G元素的信息。此时,固件应用程序的内存可能太多。我建议选择N个最常用的元素并存储这些元素的计数。它将在不占用太多内存的情况下为您提供有关热点的足够信息。但是,这确实会使直方图变得不可能。或者您会扩大直方图存储箱。这将在一个范围内显示良好的热点,但将无法达到目的,因为我确信条目X和X+1在写入数方面没有关系。您可以保持整个集合的两部分、四分之四、八分之八等的写入计数,并动态放大计数最高的分数。最简单有效的方法是生成所需块范围大小的数组,并跟踪块范围内发生的写入。但我想知道是否有有效的方法来完成这项任务。我更新了问题的细节Alex,你能详细说明你的答案吗?