2.2 Reserved block In this method, a mapping table will be generated. When a bad block is identified, the software will reserve a good block to replace it and create a mapping table saved in a reserved area.When a bad block is detected during reading a chip, software will read the mapping table and then read the replaced block. The advantage is that the storage area has logical integrity. When an error happens in Block A, try to reprogram the data into another Block (Block B), by loading from an external buffer. Then, prevent further system accesses to Block A by creating a bad block table or by using another appropriate scheme. This is called “Block Replacement." The programming algorithm works by first determining which blocks will be used as the User Block Area (UBA) and which blocks will be used as the Reserved Block Area (RBA). The starting address and size of the UBA are determined by the parameters entered in “UBA start block" and “Size of UBA blocks." Also, the starting block and size of the RBA is defined by the user as well. Between the starting address of UBA and RBA, there are some blocks reserved for replacing the bad blocks. The algorithm reads the spare area of the device, and constructs a “map table" in the RBA. Only the first and second valid blocks in the RBA are used for this table. The map table contains information on how to substitute bad blocks in the UBA with good blocks in the area reserved for placement. The data fields in the map table are shown below. The Transition Field is always FDFEh. The Count Field is incremented by one for each page of the map table. For the current algorithm, there are only two pages used so the field will contain 0001h for the page in the first block and 0002h for the page in the second block of the map table. The data pair Invalid Block / Replaced Block shows the address of the bad block and the address of the replacement block respectively. The rest of the page consists of these data pairs. Since there are 512 bytes, the maximum number of data pair entries is 127. Usually this will be sufficient since the number of bad blocks is typically less that 1% of the total number of blocks for new devices being programmed. Of course, new bad blocks can be generated during usage so the system (using this method) will have to identify these blocks and update the map table. The second page of the map table is used to duplicate the information in the first page in case one of these pages becomes corrupt during usage. All fields use “little endian" protocol; the low byte is first.
Figure 4In figure 4, UBA is User Block Area. RBA is Reserved Block Area. Reserved for Replacement Between the starting address of UBA and RBA, there are some reserved for replacement blocks used for replacing the bad blocks.
----------------------------------------------------------------------------------------------------------------- 2.2保留块 在该方法中,将生成映射表。当识别出坏块时,软件将保留一个好的块来替换它,并创建保存在保留区域中的映射表。当在读取芯片期间检测到坏块时,软件将读取映射表,然后读取替换块。优点是存储区域具有逻辑完整性。在块A发生错误时,尝试通过从外部缓冲区加载将数据重新编程到另一个块(块B)中。然后,通过创建一个坏的块表或使用另一个适当的方案来防止对块A的进一步的系统访问。这被称为“块更换”。 编程算法首先确定哪些块将被用作用户块区(UBA),哪些块将被用作保留块区(RBA)。 UBA的起始地址和大小由在“UBA起始块”和“UBA块的大小”中输入的参数确定。此外,RBA的起始块和大小也由用户定义。 在UBA和RBA的起始地址之间,有一些块用于替换坏块。 该算法读取设备的备用区,并在RBA中构建“映射表”,只有RBA中的第一个和第二个有效块用于该表。 地图表包含有关如何在UBA中替换坏区块的信息,并在保留用于放置的区域中使用良好的块。地图表中的数据字段如下所示。 过渡场总是FDFEh。计数字段为地图表的每个页面增加一个。对于当前算法,仅使用两个页面,因此该字段将包含第一个块中的页面的0001h和映射表的第二个块中的页面的0002h。 数据对无效块/替换块分别显示坏块的地址和替换块的地址。页面的其余部分由这些数据对组成。由于有512个字节,所以数据对条目的最大数量为127.通常这将是足够的,因为坏块的数量通常小于正在编程的新设备的总块数的1%。当然,在使用过程中可能会产生新的坏块,所以系统(使用这种方法)必须识别这些块并更新映射表。 映射表的第二页用于复制第一页中的信息,以防在这些页面中的一个在使用过程中损坏。所有字段都使用“小端”协议;低字节是第一个。 在图4中,UBA是用户块区。 RBA是保留块区域。保留替换在UBA和RBA的起始地址之间,有一些保留用于替换坏块的替换块。
|