Flash基础知识汇总

Flash的纠2检3是什么?

Flash的双位纠错三位检测是一种用于检测和纠正Flash存储器中的错误的技术。它的原理是利用海明距离1,即两个编码之间不同的比特位的个数,来判断数据是否出错,以及出错的位置。Flash的双位纠错三位检测可以纠正两个比特位的错误,或者检测三个比特位的错误,但不能纠正三个比特位的错误。
具体来说,Flash的双位纠错三位检测是这样工作的:
当向Flash中写入数据的时候,每256字节生成一个3字节的ECC(错误检测和纠正)校验和,称之为原ECC校验和,存储在OOB(外带数据)区中。
当从Flash中读取数据的时候,每256字节重新生成一个ECC校验和,称之为新ECC校验和。
校验的时候,将原ECC校验和和新ECC校验和按位异或,得到一个3字节的结果。
如果结果为0,表示没有错误,或者有ECC无法检测的错误。
如果结果中有11个比特位为1,表示有一个比特位的错误,且可以通过ECC算法找到并纠正。
如果结果中只有1个比特位为1,表示OOB区出错。
如果结果中有其他数量的比特位为1,表示有两个或三个比特位的错误。
如果有两个比特位的错误,可以通过ECC算法找到并纠正。
如果有三个比特位的错误,可以通过ECC算法检测到,但不能纠正。

什么是海明距离?

海明距离(Hamming distance)是指两个等长字符串之间对应位置的不同字符的个数。例如,字符串“1010”和“1111”的海明距离是2,因为它们的第二位和第三位不同。海明距离可以用来衡量两个字符串的相似度或者差异度。
海明距离在信息编码中也有重要的应用,它可以用来表示两个合法代码之间的码距,也就是编码不同的位数。码距越大,就越容易检测和纠正传输过程中的错误。海明距离的最小值称为该编码集的海明距离,它反映了编码的纠错能力。

如何生成的ECC校验和?

ECC是Error Checking and Correction的缩写,是一种用于检测和纠正Flash中的数据错误的算法。ECC的原理是根据原始数据生成一些额外的校验数据,然后将它们一起存储到Flash中。当读取数据时,ECC算法会比较原始数据和校验数据,如果发现不一致,就说明有错误发生,然后尝试修复错误。
ECC的生成方法有很多种,不同的Flash芯片可能采用不同的算法。一种常见的算法是SECD-ED(Single Error Correction, Double Error Detection),也就是能够纠正一个比特的错误,检测两个比特的错误。这种算法一般每256字节的原始数据生成3字节的ECC校验数据,这3字节共24比特分成两部分:6比特的列校验和16比特的行校验,多余的两个比特置1,如下图所示:
在这里插入图片描述

其中,列校验和P4和P4是根据原始数据的第4位和第0位进行异或运算得到的,行校验和P8和P8是根据原始数据的第7位和第3位进行异或运算得到的,以此类推。用数学表达式表示为:
在这里插入图片描述
其他的校验和也是类似的方式生成的。这样,当读取数据时,ECC算法就可以根据校验和的值判断出哪些比特发生了错误,然后进行修正或报告。

OOB区是什么

Flash中的OOB区是指Out Of Band区,也就是备用区。它是NAND Flash中每个页面(page)后面的一小段区域,用于存放一些额外的信息,比如硬件ECC校验码、坏块标记、文件系统的组织信息等。这些信息主要用于硬件纠错和坏块处理。
一般来说,NAND Flash的页面大小有多种格式,比如512字节、256字节、2048字节等。不同的页面大小对应不同的OOB区大小,比如512字节的页面分配16字节的OOB区,2048字节的页面分配64字节的OOB区。

EFUSE是什么?

Flash中的EFUSE是一种非易失性存储器,用于存储一些不可更改的数据,如芯片的序列号、校准参数、安全密钥等。EFUSE的特点是一旦写入,就无法擦除或修改,因此具有很高的安全性和可靠性。EFUSE也可以用于实现安全启动,即只允许预先认证的软件运行在芯片上,防止恶意代码的侵入。
EFUSE的原理是利用电流通过金属丝时产生的焊接效应,将金属丝熔断,从而改变电阻值,实现0和1的存储。EFUSE的写入需要较高的电压和电流,通常需要专用的编程器或者芯片自带的编程电路。EFUSE的读取则可以用普通的电压和电流,通过测量电阻值来判断存储的数据。

FLASH TRIMC是什么?

FLASH TRIMC是一种闪存(flash memory)的技术,用于提高闪存的性能和寿命。闪存是一种非易失性的存储器,可以在断电后保持数据。闪存的一个特点是,它只能按块(block)进行擦除,而不能按字节(byte)进行擦除。这就导致了一个问题,当闪存中的某些块被频繁写入和擦除时,它们的寿命会降低,而其他块则很少被使用。这就造成了闪存的磨损不均匀(wear leveling)的问题。
为了解决这个问题,FLASH TRIMC技术可以在闪存中实现动态的块重映射(block remapping)。这就意味着,当闪存中的某些块被写入和擦除时,FLASH TRIMC技术可以将它们与其他空闲的块进行交换,从而使闪存中的所有块都能均匀地被使用。这样,就可以提高闪存的性能和寿命,避免闪存的磨损和损坏。
FLASH TRIMC技术是一种专利技术,由台湾的威刚科技(ADATA Technology)公司开发。它可以应用于各种闪存产品,如固态硬盘(SSD)、闪存卡(flash card)等。FLASH TRIMC技术的优点是,它可以在不影响闪存的读写速度的情况下,实现闪存的磨损均衡和寿命延长。

FLASH读写时序参数是什么?

FLASH读写时序参数是指FLASH存储器在读取或写入数据时需要遵守的时间要求,以保证数据的正确性和稳定性。不同类型的FLASH存储器可能有不同的读写时序参数,例如NOR Flash和NAND Flash。一般来说,FLASH读写时序参数包括以下几个方面:
地址建立时间(tAS):地址信号有效后,到读写信号有效之前的时间间隔。
地址保持时间(tAH):读写信号无效后,到地址信号无效之前的时间间隔。
数据建立时间(tDS):数据信号有效后,到读写信号有效之前的时间间隔。
数据保持时间(tDH):读写信号无效后,到数据信号无效之前的时间间隔。
读写脉冲宽度(tWP):读写信号有效的持续时间。
读写恢复时间(tWR):读写信号无效后,到下一次读写信号有效之前的时间间隔。
读写周期时间(tWC):两次读写信号有效之间的时间间隔。
读数据延迟时间(tRL):读写信号有效后,到数据信号有效之前的时间间隔。
读数据保持时间(tRH):读写信号无效后,到数据信号无效之前的时间间隔。
读数据访问时间(tACC):地址信号有效后,到数据信号有效之前的时间间隔。

什么是SMWR?

"Smart Write Read"在Flash中通常指的是一种智能的读写操作。在这种操作中,数据首先被写入到Flash的内部缓存,然后再被擦除和写入到指定的地址空间。这种方法可以有效地减少对Flash的写入次数,从而延长Flash的使用寿命。
以下是一个典型的Flash智能读写操作的流程:
写入数据到内部Flash
1.Flash解锁
2.擦除扇区
3.写数据到指定的地址空间
4.上锁写保护
5.写数据成功
这种方法在处理大量数据时特别有效,因为它可以减少不必要的写入操作,从而提高效率和延长Flash的使用寿命。但是,这种方法也有一些限制,例如,它需要有足够的内存来存储要写入的数据。因此,在使用这种方法时,需要根据具体的应用场景和硬件条件来进行选择。

什么是CP测试?

CP测试(Chip Probing)是一种在芯片制造流程中处于晶圆制造和封装之间的测试1。在晶圆(Wafer)制作完成之后,成千上万的裸DIE(未封装的芯片)规则的分布满整个Wafer。由于尚未进行划片封装,芯片的管脚全部裸露在外,这些极微小的管脚需要通过更细的探针(Probe)来与测试机台(Tester)连接。在未进行划片封装的整片Wafer上,通过探针将裸露的芯片与测试机连接,从而进行的芯片测试就是CP测试。

预取是什么?

Flash预取,也被称为Flash Prefetch,是CPU从Flash读取指令时的缓存器。这个缓存器有两个,每个64位。每次从Flash读取指令时,一次读取64位(因为Flash的带宽是64位),而CPU每次取指最多是32位。这样,当CPU在读取指令时,下一条指令已经装载在缓冲区中,从而可以提高CPU的工作效率。

我们的代码都是放在flash中的,内核要读flash中的code,它是一条一条读一条一条执行的。读完第一条,还没读第二条代码时,内核先会把将要读的读的第二条代码先取好,放好等待它去读,这个过程称为预取指。

Cortex处理器采用的是三级流水线的哈佛结构,一条指令的执行分为:取指阶段 (Fetch stage)、译码阶段 (Decode stage)、执行阶段 (Execute stage)。CPU通常需要4个周期读取64位数据进入指令缓冲。

总的来说,Flash预取是一种提高CPU工作效率的技术,它通过预先读取下一条指令到缓冲区,使得CPU在执行当前指令的同时,下一条指令已经准备好,从而提高了CPU的工作效率。

  • 17
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值