利用微处理器在闪存中储存数据的方法技术

技术编号:7614409 阅读:179 留言:0更新日期:2012-07-26 23:49
本发明专利技术涉及一种利用微处理器在闪存中储存数据的方法,该方法包括:写入一第一组数据区段字节至一闪存中;将该第一组数据区段字节区分为一第一子数据区段及一第二子数据区段;根据该第一子数据区段,产生一第一子数据校正字节;根据该第二子数据区段,产生一第二子数据校正字节;将该第一子数据校正字节和该第二子数据校正字节作为一第一组数据校正字节写入该闪存,其中将该第一组数据校正字节写入与该第一组数据区段字节储存地址相紧接的储存地址;以及重复上述步骤,分别储存其它组数据区段字节与相对应的数据校正字节。本发明专利技术的技术方案可以改善数据存取效能和数据错误涵盖率。

【技术实现步骤摘要】

本专利技术涉及一种数据储存结构与方法,特别涉及一种应用于闪存(flash memory) 中的可改善数据存取效能与错误涵盖率的数据储存结构与方法。
技术介绍
现今将闪存大量应用于消费性电子产品的趋势,已然越来越明显。但是,因受限于闪存的顺序存取设计结构,除非闪存本身能提供部分读(partial read)与部分写(partial write)功能以提高存取效能,否则以目前公知存取闪存中数据的储存结构与存取方法,皆无法明显有效提高存取效率。这种情形,在越来越讲求高速数据处理的时代,显然仍存有相当大的改进空间。闪存的数据存取,通常是以一个基本存取数据页(page)作为基本的数据存取单位。其中,考虑闪存的容量大小不同,基本存取数据页的存取数据内容即会跟着有所不同。 举例而言,针对低容量的闪存,其基本存取数据页(简称512pages)的存取数据内容可为 (512bytes+16bytes);其中,512bytes指所有数据区段字节的总字节数,而16bytes则用来作为储存数据校正字节之用。当然,目前产生数据校正字节的较常使用方式,是依据数据区段字节的内容,通过算法而计算出错误修正码(Error Correction Code,ECC),但是实际实施方式应不限于此。至于高容量的闪存,其基本存取数据页(简称为2k pages)的存取数据内容则可为(2k bytes+64bytes);其中,2k bytes指所有数据区段字节的总字节数,而 64bytes则用来作为储存数据校正字节之用。请参阅图1,其为公知存取闪存中数据的储存结构示意图。也就是说,图I所示为包含有四组数据区段字节Sll S14与四组数据校正字节Ell E14的一基本存取数据页 Pl的储存结构示意图。其中,所述四组数据区段字节Sll S14用以表示闪存的四组储存数据。另外,根据所述四组数据区段字节Sll S14的储存内容,以通过可产生错误修正码,抑或其它可用以检测或更正数据传输或储存错误的算法(其皆为一公知技术),而分别产生出相对应的所述四组数据校正字节Ell E14。因此,如以2k pages形式的基本存取数据页为例,则所述四组数据区段字节Sll S14中的任一组数据区段字节的储存容量,即应分别为512bytes,而所述四组数据校正字节Ell E14中的任一组数据校正字节的储存容量,则应分别为16bytes。另外,图I没有示出的,还包括有一数据存取缓冲器,以供自闪存内读取出数据或欲写入数据至闪存中时,提供数据于进行存取时的缓冲功能。但是,因数据存取缓冲器的具体实施结构可以是一般公知缓存器,故在此不再予以赘述。图I所示储存结构的缺点在于,因所述四组数据区段字节Sll S14与所述四组数据校正字节Ell E14,被依序地安排储存在左、右两边不同的储存位置。如此一来,当欲仅针对该基本存取数据页Pl中某部分的数据区段字节的数据进行读取时,受限于闪存的顺序存取设计结构,且假设闪存本身未能提供部分读与部分写功能,则显然仍需将不必要的数据区段字节或数据校正字节持续读入该数据存取缓冲器内。举例而言,假设一微处理器(图中未示出)在某次工作事件(event)中,仅需要使用该第二组数据区段字节S12时, 因其相对应的该第二组数据校正字节E12的储存位置被安排在该第三、第四组数据区段字节S13、S14的储存位置以及该第一组数据校正字节Ell的储存位置后方。因此,当该微处理器依据闪存的数据顺序存取特性而依序地将该第一、第二组数据区段字节Sll、S12读入该数据存取缓冲器后,为了要能取得该第二组数据校正字节E12,验证该第二组数据区段字节S12在数据存取过程或储存期间中是否曾发生数据错误现象,即显然需等到该第三、第四组数据区段字节S13、S14以及该第一组数据校正字节Ell —并被读入后,方可取得该第二组数据校正字节E12。如此一来,以图I公知储存结构进行存取动作势必会浪费一些额外的存取时间,且该数据存取缓冲器的储存空间也至少要准备能容纳该基本存取数据页Pl 的所有字节总数的储存空间,方足以应付极端的实际应用例。纵然,将图I所示的公知储存结构搭配具有部分读与部分写功能的闪存时,以上述示例而论,仍然需要至少移动一位置指针(pointer)(其用以标示数据的储存位置)两次,方可依序完成存取该第二组数据区段字节S12与该第二组数据校正字节E12的存取动作。另一方面,因所述四组数据校正字节Ell E14分别由所述四组数据区段字节 Sll S14各自经过一用以产生错误修正码(ECC)的算法而计算得到,且因错误修正码通常只能检测到一个位错误,这显然也会使公知储存结构的错误涵盖率(Error Coverage Rate)无法有效提升。虽然,目前已有较为复杂的错误修正码产生算法被提出以希望能提高错误涵盖率,但是,使用这种较为复杂的算法所需付出的代价,即是需要大幅增加数据的处理时间。这种结果,显然也与目前高速数据处理的要求相违背。因此,提出本专利技术的主要目的,即希望提供一种在不增加成本的情况下,有效改善数据存取效能的数据储存结构与方法。提出本专利技术的另一目的,即希望提供一种可在不大幅增加数据处理时间的情况下,有效改善数据错误涵盖率的数据储存结构与方法。
技术实现思路
本专利技术涉及一种,该方法包括写入一第一组数据区段字节至一闪存中;将该第一组数据区段字节区分为一第一子数据区段及一第二子数据区段;根据该第一子数据区段,产生一第一子数据校正字节;根据该第二子数据区段,产生一第二子数据校正字节;将该第一子数据校正字节和该第二子数据校正字节作为一第一组数据校正字节写入该闪存,其中将该第一组数据校正字节写入与该第一组数据区段字节储存地址相紧接的储存地址;以及重复上述步骤,分别储存其它组数据区段字节与相对应的数据校正字节。本专利技术的技术方案可以改善数据存取效能和数据错误涵盖率。附图说明图I为公知存取闪存中数据的储存结构示意图。图2(a)为本专利技术的一第一较佳实施结构示例图。图2(b)为本专利技术的一第二较佳实施结构示例图。图3为本专利技术的一第三较佳实施结构示例图。图4为本专利技术的一较佳实施方法的步骤示意图。其中,附图标记说明如下图I 基本存取数据页Pl数据区段字节Sll S14 数据校正字节ElI E14图2(a)、图 2(b) 图 4 :基本存取数据页P2、P3数据区段字节S21 S24、S31 S34数据校正字节E21 E24、E31 E34部分数据区段字节S21a S24b、S3Ia S34b部分数据校正字节E21a E24b、E31a E34b具体实施例方式为解决因公知数据储存结构的限制,导致在存取闪存时发生数据存取效能不显著现象,本专利技术提出一种新的数据储存结构。请参阅图2(a),其为本专利技术的第一较佳实施结构示例图。图2(a)中所示的基本存取数据页P2,包含有四组数据区段字节S21 S24与四组数据校正字节E21 E24。如以基本存取数据页(简称为2k pages)形式的基本存取数据页为例作一说明,则所述四组数据区段字节S21 S24中的任一组数据区段字节的储存容量应分别为512bytes,而所述四组数据校正字节E21 E24中的任一组数据校正字节的储存容量则分别为16bytes。从图2 (a)中有关数据的储存本文档来自技高网
...

【技术保护点】

【技术特征摘要】

【专利技术属性】
技术研发人员:江晋毅郭东智曾俊华张育维
申请(专利权)人:威盛电子股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1
相关领域技术