《存储控制器、存储设备、信息处理系统和存储控制方法.pdf》由会员分享,可在线阅读,更多相关《存储控制器、存储设备、信息处理系统和存储控制方法.pdf(57页珍藏版)》请在专利查询网上搜索。
1、(10)申请公布号 CN 103995756 A (43)申请公布日 2014.08.20 C N 1 0 3 9 9 5 7 5 6 A (21)申请号 201410037583.5 (22)申请日 2014.01.26 2013-026493 2013.02.14 JP G06F 11/10(2006.01) (71)申请人索尼公司 地址日本东京 (72)发明人大久保英明 中西健一 藤波靖 筒井敬一 (74)专利代理机构北京信慧永光知识产权代理 有限责任公司 11290 代理人曹正建 陈桂香 (54) 发明名称 存储控制器、存储设备、信息处理系统和存储 控制方法 (57) 摘要 本发明涉及。
2、存储控制器、存储设备、信息处理 系统和存储控制方法。在本发明中,管理在多个存 储器地址的信息并基于错误信息在存储器中确定 刷新对象的地址。由此,提供了恰当地控制非易失 性存储器的刷新处理的效果。 (30)优先权数据 (51)Int.Cl. 权利要求书2页 说明书24页 附图30页 (19)中华人民共和国国家知识产权局 (12)发明专利申请 权利要求书2页 说明书24页 附图30页 (10)申请公布号 CN 103995756 A CN 103995756 A 1/2页 2 1.一种存储控制器,其包括: 错误信息管理部,其管理存储器的多个地址的错误信息;以及 刷新对象确定部,其基于所述错误信息在。
3、所述存储器中确定刷新对象的地址。 2.根据权利要求1所述的存储控制器,其中, 所述错误信息管理部将检出错误处的地址与检出的错误数量相关联以作为所述错误 信息进行管理,并且 所述刷新对象确定部基于所述错误数量将与所述错误数量相关联的所述检出错误处 的地址确定为所述刷新对象的地址。 3.根据权利要求2所述的存储控制器,其中,所述错误信息管理部基于所述错误数量 确定是否从管理对象排除所述错误信息。 4.根据权利要求2所述的存储控制器,其中, 所述错误信息管理部还将管理读取次数和所述检出错误处的地址相关联以作为所述 错误信息进行管理,并且 所述刷新对象确定部基于所述读取次数将与所述读取次数相关联的所述。
4、检出错误处 的地址确定为所述刷新对象的地址。 5.根据权利要求1所述的存储控制器,其中,当在所述存储器中出现错误时,所述错误 信息管理部基于预先指定的条件确定是否从管理对象中排除所述错误信息。 6.根据权利要求1所述的存储控制器,其中, 所述错误信息管理部将所述存储器的检出错误处的物理地址和检测的错误数量相关 联以作为所述错误信息进行管理,并且 所述刷新对象确定部基于所述错误数量将与所述错误数量相关联的所述物理地址确 定为所述刷新对象的地址。 7.根据权利要求1所述的存储控制器,其还包括: 地址转换部,其将所述存储器的用于从主机计算机到所述存储器的存取命令的逻辑地 址转换成所述存储器的物理地址。
5、, 其中,所述错误信息管理部将所述存储器的检出错误处的逻辑地址与检出的错误数量 相关联以作为所述错误信息进行管理,并且 所述刷新对象确定部基于所述错误数量选择与所述错误数量相关联的逻辑地址,并使 用所述地址转换部将该逻辑地址转换成物理地址以将该物理地址确定为所述刷新对象的 地址。 8.根据权利要求2所述的存储控制器,其中,所述错误信息管理部保持所述存储器的 地址中存储的与所述错误信息相关联的数据,并在存取所述存储器的地址时使用所述数 据。 9.根据权利要求8所述的存储控制器,其中,除了所述数据以外,所述错误信息管理部 还保持错误校正码。 10.根据权利要求8所述的存储控制器,其中,只有当包含在。
6、所述错误信息中的所述错 误数量满足预定条件时,所述错误信息管理部才保持所述数据。 11.根据权利要求1所述的存储控制器,其中,所述错误信息管理部在从主机计算机接 收所述错误信息的获取命令时将所述错误信息通知给所述主机计算机。 权 利 要 求 书CN 103995756 A 2/2页 3 12.根据权利要求1所述的存储控制器,其中,所述刷新对象确定部改变所述刷新对象 的地址,以将所述刷新对象的改变前的地址中存储的数据写入到所述刷新对象的改变后的 地址。 13.一种存储设备,其包括: 存储器;以及 根据权利要求1-12中任一项所述的存储控制器,其用于控制所述存储器的存取。 14.一种信息处理系统,。
7、其包括: 存储器; 主机计算机,其针对所述存储器发出存取命令; 错误信息管理部,其管理所述存储器的多个地址的错误信息;以及 刷新对象确定部,其基于所述错误信息在所述存储器中确定刷新对象地址。 15.根据权利要求14所述的信息处理系统,其中,所述主机计算机包括所述错误信息 管理部和所述刷新对象确定部。 16.一种存储控制方法,其包括: 管理存储器的多个地址的错误信息;以及 基于所述错误信息在所述存储器中确定刷新对象地址。 权 利 要 求 书CN 103995756 A 1/24页 4 存储控制器、 存储设备、 信息处理系统和存储控制方法 技术领域 0001 本发明涉及存储控制器。具体地,本发明涉。
8、及用于非易失性存储器的存储控制器、 用于非易失性存储器的存储设备、用于非易失性存储器的信息处理系统、该信息处理系统 中的处理方法以及用于使计算机执行所述处理方法的程序。 背景技术 0002 在信息处理系统中,动态随机存取存储器(DRAM)等被用作工作存储器(work memory)。DRAM通常是易失性存储器,当电源停止时,会丢失其存储内容。另一方面,近年 来,非易失性存储器(NVM)被使用。非易失性存储器大致地分为用于在以大数据为单位的 情况下支持数据存取的闪速存储器(flash memory)以及用于在以小数据为单位的情况下 提供高速随机存取的非易失性RAM(non-volatile RA。
9、M,NVRAM)。闪速存储器以NAND型闪 速存储器作为代表。另一方面,非易失性RAM以电阻式RAM(ReRAM)、相变式RAM(PCRAM)以 及磁阻式RAM(MRAM)作为代表。 0003 在非易失性存储器中,为了避免存储状态随着时间流逝而改变的情况,可在存储 状态改变之前执行如下刷新处理,在该刷新处理中,重写存储状态以对其进行校正。在相关 领域的已知存储器系统中,存在如下存储器系统,如果在从非易失性存储器读取数据时检 出错误,该存储器系统的存储器控制器在不从主机计算机接收命令的情况下自发地执行刷 新处理(例如,参照日本未经审查专利申请2008-192267)。另外,还提出如下一种存储器系。
10、 统,在该系统中,主机计算机在读取数据时接收错误检测的通知,并且主机计算机在合适时 机执行刷新命令(例如,参照日本未经审查的专利申请2008-192267)。在刷新处理中,对检 出错误的数据执行错误校正,并且将已校正的数据写入非易失性存储器。 0004 在相关领域的上述技术中,当存储器控制器在读取命令的执行期间自发地执行刷 新处理时,除了与读取命令的执行相关联地发生从非易失性存储器的数据读取处理之外, 还发生写入处理。因此,与不执行刷新处理的情况相比,增加了用于完成读取命令所需要的 时间,这导致读取命令的性能降低。 0005 另外,假设在完成读取命令之后且在执行后续的读取命令或写入命令之前存储。
11、器 控制器自发地执行刷新处理的情况。在这种情况下,如果主机计算机在刷新处理期间执行 后续的命令,那么在对非易失性存储器的用于刷新处理的存取完成之前,都需要一直等候 对非易失性存储器的用于后续处理的存取。换言之,最终这引起读取命令和写入命令的性 能降低。 0006 另一方面,假设响应于源自主机计算机的指令而执行刷新处理的情况。在这种情 况下,当在读取命令的执行期间检出错误时,在完成读取命令处理之后,错误的出现被通知 给主机计算机。主机计算机选择发出刷新命令的时机并基于所通知的信息发出刷新命令。 为了抑制写入命令和读取命令的性能降低,主机计算机需要在不执行写入命令或读取命令 的时机执行刷新命令。然。
12、而,当由于处于不允许立即执行刷新命令的状态中的多个命令而 连续地执行写入命令和读取命令并且检出了错误时,不允许正确地保持错误信息。 说 明 书CN 103995756 A 2/24页 5 发明内容 0007 期望恰当地控制非易失性存储器的刷新处理。 0008 根据本发明的实施例,提供一种存储控制器,其包含:错误信息管理部,其管理存 储器的多个地址的错误信息;以及刷新对象确定部,其基于所述错误信息在所述存储器中 确定刷新对象的地址。相应地,提供了基于多个地址的错误信息来确定刷新对象的地址的 功能。 0009 根据本发明的实施例,提供一种存储控制方法,其包含:管理存储器的多个地址的 错误信息;以及。
13、基于所述错误信息在所述存储器中确定刷新对象的地址。相应地,提供了基 于多个地址的错误信息来确定刷新对象的地址的功能。 0010 在本发明的各个实施例中,所述错误信息管理部可以将检出错误处的地址与检出 的错误数量相关联以作为所述错误信息进行管理,并且所述刷新对象确定部可以基于所述 错误数量将与所述错误数量相关联的所述检出错误处的地址确定为所述刷新对象的地址。 相应地,提供了基于错误数量来确定刷新对象的地址的功能。 0011 在本发明的各个实施例中,所述错误信息管理部基于所述错误数量确定是否从管 理对象排除所述错误信息。相应地,提供了从管理对象中排除地址的功能。 0012 在本发明的各个实施例中,。
14、所述错误信息管理部还将管理读取次数和所述检出错 误处的地址相关联以作为所述错误信息进行管理,并且所述刷新对象确定部基于所述读取 次数将与所述读取次数相关联的所述检出错误处的地址确定为所述刷新对象的地址。相应 地,提供了基于读取次数来确定刷新对象的地址的功能。 0013 在本发明的各个实施例中,当在所述存储器中出现错误时,所述错误信息管理部 基于预先指定的条件确定是否从管理对象中排除所述错误信息。相应地,提供了基于指定 的条件将错误从管理对象中排除的功能。 0014 在本发明的各个实施例中,所述错误信息管理部将所述存储器的检出错误处的物 理地址和检测的错误数量相关联以作为所述错误信息进行管理,并。
15、且所述刷新对象确定部 基于所述错误数量将与所述错误数量相关联的所述物理地址确定为所述刷新对象的地址。 相应地,提供了从与错误数量相关联的物理地址来确定刷新对象的地址的功能。 0015 在本发明的各个实施例中,还可以提供地址转换部,其用于将所述存储器的用于 从主机计算机到所述存储器的存取命令的逻辑地址转换成所述存储器的物理地址。所述错 误信息管理部将所述存储器的检出错误处的逻辑地址与检出的错误数量相关联以作为所 述错误信息进行管理。所述刷新对象确定部基于所述错误数量选择与所述错误数量相关联 的逻辑地址,并使用所述地址转换部将该逻辑地址转换成物理地址以将该物理地址确定为 所述刷新对象的地址。相应地。
16、,提供了从与错误数量相关联的逻辑地址来确定刷新对象的 地址的功能。 0016 在本发明的各个实施例中,所述错误信息管理部保持所述存储器的地址中存储的 与所述错误信息相关联的数据,并在存取所述存储器的地址时使用所述数据。该数据关联 到错误信息。相应地,提供了在不存取存储器的情况下使用与错误信息相关联的数据的功 能。 0017 在本发明的各个实施例中,除了所述数据以外,所述错误信息管理部还保持错误 说 明 书CN 103995756 A 3/24页 6 校正码。相应地,提供了在不存取存储器的情况下使用与错误信息相关联的数据和错误校 正码的功能。 0018 在本发明的各个实施例中,只有当包含在所述错。
17、误信息中的所述错误数量满足预 定条件时,所述错误信息管理部才保持所述数据。相应地,提供了只有当指定的条件被满足 时才能在不进行存取的情况下使用数据的功能。 0019 在本发明的各个实施例中,所述错误信息管理部在从主机计算机接收所述错误信 息的获取命令时将所述错误信息通知给所述主机计算机。相应地,提供了响应于来自主机 计算机的命令使主机计算机获得错误信息的功能。 0020 根据本发明的一个实施例,提供一种存储设备,其包含:存储器;错误信息管理 部,其管理存储器的多个地址的错误信息;以及刷新对象确定部,其基于所述错误信息在所 述存储器中确定刷新对象的地址。相应地,提供了基于多个存储器地址的错误信息。
18、来确定 刷新对象的地址的功能。 0021 根据本发明的一个实施例,提供一种信息处理系统,其包含:存储器;主机计算 机,其发出关于存储器的存取命令;错误信息管理部,其管理存储器的多个地址的错误信 息;以及刷新对象确定部,其基于所述错误信息在所述存储器中确定刷新对象的地址。相应 地,提供了基于存储器的多个地址中的根据来自主机计算机的命令存取的错误信息来确定 刷新对象的地址的功能。 0022 在本发明的实施例中,主机计算机可以包含错误信息管理部和刷新对象确定部。 相应地,提供了基于存储器的多个地址的错误信息使主机计算机来确定刷新对象的地址的 功能。 0023 根据本发明的各个实施例,提供了恰当地控制。
19、非易失性存储器的刷新处理的效 果。 0024 应当理解的是,以上的一般性描述和以下的详细描述均是示例性的,并且旨在提 供对所要求保护的技术的进一步说明。 附图说明 0025 所包括的附图提供了对本发明的进一步理解,并且被结合到说明书中以构成说明 书的一部分。附图说明了实施例,并与说明书一起解释了本发明的原理。 0026 图1是示出了根据本发明第一实施例的信息处理系统的构造示例的示意图; 0027 图2是示出了根据本发明第一实施例的存储器300的存储结构的示意图; 0028 图3是示出了根据本发明第一实施例的表管理部220的构造示例的示意图; 0029 图4是示出了根据本发明第一实施例的错误信息。
20、管理表221的结构示例的示意 图; 0030 图5是示出了根据本发明第一实施例的地址转换表222的结构示例的示意图; 0031 图6是示出了根据本发明第一实施例的读取命令处理的处理过程的示例的流程 图; 0032 图7是示出了根据本发明第一实施例的错误信息管理表的更新的处理过程的示 例的流程图; 0033 图8是示出了根据本发明第一实施例的错误信息管理表的更新的第一示例的示 说 明 书CN 103995756 A 4/24页 7 意图; 0034 图9是示出了根据本发明第一实施例的错误信息管理表的更新的第二示例的示 意图; 0035 图10是示出了根据本发明第一实施例的错误信息管理表的更新的第。
21、三示例的示 意图; 0036 图11是示出了根据本发明第一实施例的刷新命令处理的处理过程的示例的流程 图; 0037 图12是示出了根据本发明第一实施例的刷新命令处理的示例的示意图; 0038 图13是示出了根据本发明第一实施例的写入命令处理的处理过程的示例的流程 图; 0039 图14是示出了根据本发明第一实施例的变形例的表管理部220的构造示例的示 意图; 0040 图15是示出了根据本发明第一实施例的变形例的管理对象地址表223的结构示 例的示意图; 0041 图16是示出了根据本发明第一实施例的变形例的错误信息管理表的更新的处理 过程的示例的流程图; 0042 图17是示出了根据本发明。
22、第一实施例的变形例的错误信息管理表221的结构示 例的示意图; 0043 图18是示出了根据本发明第一实施例的变形例的刷新命令处理的处理过程的示 例的流程图; 0044 图19是示出了根据本发明的第二实施例的错误信息管理表221的结构示例的示 意图; 0045 图20是示出了根据本发明第二实施例的错误信息管理表的更新的处理过程的示 例的流程图; 0046 图21是示出了根据本发明第三实施例的错误信息管理表221的结构示例的示意 图; 0047 图22是示出了根据本发明第四实施例的错误信息管理表221的结构示例的示意 图; 0048 图23是示出了根据本发明第四实施例的刷新命令处理的处理过程的示。
23、例的流程 图; 0049 图24是示出了根据本发明第五实施例的错误信息管理表221的结构示例的示意 图; 0050 图25是示出了根据本发明第五实施例的错误信息管理表的更新的处理过程的示 例的流程图; 0051 图26是示出了根据本发明第五实施例的刷新命令处理的处理过程的示例的流程 图; 0052 图27是示出了根据本发明第六实施例的表信息获取命令处理的处理过程的示例 的流程图; 0053 图28是示出了根据本发明第六实施例的刷新命令处理的处理过程的示例的流程 说 明 书CN 103995756 A 5/24页 8 图; 0054 图29是示出了根据本发明第七实施例的信息处理系统的构造示例的示。
24、意图; 0055 图30是示出了根据本发明第七实施例的读取命令处理的处理过程的示例的流程 图; 0056 图31是示出了根据本发明第七实施例的错误信息管理表的更新的处理过程的示 例的流程图; 0057 图32是示出了根据本发明第七实施例的刷新命令处理的处理过程的示例的流程 图; 0058 图33是示出了根据本发明第七实施例的写入命令处理的处理过程的示例的流程 图。 具体实施方式 0059 在下文中,将说明本发明的一些实施例。说明将以下面的顺序给出。 0060 1.第一实施例(由存储器控制器管理错误信息的示例) 0061 2.第二实施例(使用逻辑地址管理错误信息的示例) 0062 3.第三实施例。
25、(将数据、ECC和错误信息一起保持的示例) 0063 4.第四实施例(将数据和错误信息一起保持的示例) 0064 5.第五实施例(基于错误数量来防止数据保持的示例) 0065 6.第六实施例(将错误信息通知给主机计算机的示例) 0066 7.第七实施例(由主机计算机管理错误信息的示例) 0067 1.第一实施例 0068 信息处理系统的构造 0069 图1是示出了根据本发明第一实施例的信息处理系统的构造示例的示意图。该信 息处理系统包含主机计算机100、存储器控制器200以及存储器300。存储器控制器200和 存储器300构成存储系统。 0070 主机计算机100用于向存储器300发出用于请求。
26、数据的读取、写入或刷新等的命 令。 0071 存储器控制器200用于从主机计算机100接收命令以执行到存储器300的数据写 入以及执行从存储器300的数据读取。当存储器控制器200接收写入命令时,存储器控制器 200将从主机计算机100接收到的数据写入存储器300。另外,当存储器控制器200接收读 取命令时,存储器控制器200从存储器300读取数据,并将数据传输到主机计算机100。而 且,当存储器控制器200接收刷新命令时,存储器控制器200从存储器300读取数据,并将 读取的数据重写到存储器300。 0072 在写入命令和读取命令中,使用了用于指示存储器300的存储位置的头部的逻辑 地址以及。
27、数据大小。在第一实施例中,逻辑地址是被分配到如下区域的位置信息,该区域被 划为数个512字节单元。在写入命令和读取命令中,由主机系统规定的数据大小的值是由 512n个字节代表的值“n”。由存储器控制器200将逻辑地址转换成物理地址。物理地址 是被分配到存储器300中的存储单元的地址。 0073 存储器控制器200包括ECC生成部210、表管理部220、错误检测校正部230、处理 说 明 书CN 103995756 A 6/24页 9 器240、主机接口201以及存储器接口203。这些部件通过总线280互相连接。 0074 ECC生成部210用于生成存储器300中所存储的数据的错误校正码(ECC。
28、,error correcting code)。错误检测校正部230用于对从存储器300读取的数据执行错误检测和 校正处理。 0075 处理器240用于控制整个存储器控制器200。该处理器240执行存储在ROM中的 软件(未示出)。处理器240对主机计算机100发出的命令进行解析以向存储器300提供 必要的请求。注意,在本发明中,处理器240是“刷新对象确定部”的具体示例。 0076 表管理部220用于管理将稍后进行描述的错误信息管理表以及地址转换表等。 0077 主机接口201连接到主机计算机100,主机接口201用于从主机计算机100接收命 令以及用于向/从主机计算机100发送/接收数据。。
29、 0078 存储器接口203连接到存储器300,存储器接口203用于向存储器300发送请求和 写入数据以及用于接收从存储器300读取的数据。 0079 存储器300是存储器控制器200的控制对象,在本示例中,主要地,假设非易失性 存储器是存储器300。 0080 存储器的结构 0081 图2是示出了根据本发明第一实施例的存储器300的存储结构的示例的示意图。 存储器300由528字节的物理页构成。基于物理页执行从存储器控制器200到存储器300 的写入请求和读取请求。物理地址被分派到每一个物理页作为唯一的地址。 0082 将添加有16字节ECC的512字节数据写入一个物理页。该512字节数据是。
30、响应 于写入命令和读取命令而由主机计算机100存取的数据。该512字节数据是表管理部220 的管理对象。假设添加到512字节数据的16字节ECC具有8位的校正能力。 0083 表管理部的构造 0084 图3是示出了根据本发明第一实施例的表管理部220的构造示例的示意图。表管 理部220包括错误信息管理表221和地址转换表222。 0085 错误信息管理表221用于管理存储器300中出现的错误的有关信息。注意,本发 明中,错误信息管理表221是“错误信息管理部”的具体示例。 0086 地址转换表222用于将逻辑地址转换成存储器300中的物理地址。注意,在本发 明中,地址转换表222是“地址转换部。
31、”的具体示例。 0087 图4是示出了根据本发明第一实施例的错误信息管理表221的结构示例的示意 图。错误信息管理表221保持多个条目。多个条目中的每者均成对地包含存储器300的出 现错误处的物理地址和所检出的错误的数量(即,物理地址和错误数量被成对地包含在条 目中)。错误数量表示被检出错误的位的数量。 0088 将错误数量是“0”的条目作为空条目进行处理。空条目的物理地址作为无效值而 被忽略。在本示例中,在四个条目中的三个条目是有效的。 0089 顺便一提,在本示例中,虽然以错误数量的降序说明了条目,但是在错误信息管理 表221的操作中不需要以降序进行排序。另外,可不将错误数量是“0”的条目。
32、作为空条目 进行处理,而替代地,除了错误数量和物理地址之外,还可以提供用于区分条目的有效性和 无效性的标记。 0090 图5是示出了根据本发明第一实施例的地址转换表222的结构示例的示意图。地 说 明 书CN 103995756 A 7/24页 10 址转换表222保持逻辑地址和存储器300的物理地址(即,逻辑地址和物理地址成对地包 含在表中)。在第一实施例中,以512字节为单位对逻辑地址进行寻址。被写入一个逻辑地 址的512字节数据被写入到存储器300的一个物理页。因此,一个逻辑地址被转换成一个 物理地址。 0091 读取命令处理的操作 0092 图6是示出了根据本发明第一实施例的读取命令处。
33、理的处理过程的示例的流程 图。换言之,该处理过程是当存储器控制器200从主机计算机100接收读取命令时执行的 处理过程。 0093 首先,基于读取对象的首逻辑地址和主机接口201所接收的数据的大小,处理器 240将处理划分成逻辑地址单位(步骤S911)。一个处理处理一个逻辑地址。例如,在“0” 被指定为读取对象的首地址,并且“1”被指定为数据大小的情况下,执行一个处理。在“0” 被指定为读取对象的首逻辑地址,并且“2”被指定为数据大小的情况下,处理被划分成两个 处理。 0094 处理器240确定将要读取的逻辑地址(步骤S912)。基于各个读取对象的首逻辑 地址,依次确定待读取的逻辑地址。例如,。
34、在“0”被指定为读取对象的首逻辑地址并且“2” 被指定为数据大小的情况下,首先经历处理的逻辑地址被确定为“0”。接着,后续经历处理 的逻辑地址被确定是“1”。 0095 处理器240使用保持在表管理部220中的地址转换表222将被确定为待读取的逻 辑地址转换成物理地址(步骤S913)。 0096 处理器240指定在步骤S913中转换的物理地址以执行对存储器300的读取请求 (步骤S914)。从存储器300读取的数据具有包括ECC的528个字节。 0097 从存储器300读取的数据和ECC被传输到错误检测校正部230。在错误检测校正 部230中,对包含数据和ECC的528字节数据执行错误检测。当。
35、错误被检出时,获得了错误 位的数量(错误数量)(步骤S915)。当错误未被检出时,错误位的数量被设置成0。 0098 处理器240确定在步骤S915中获得的错误数量是否为0(步骤S916)。当错误数 量是0时,换言之,当未检出错误时(步骤S916:是),跳过接下来的步骤S917至S920的处 理。 0099 当检出了错误时,处理器240确定检出的错误数量是否超出可校正的错误数量 (在这种情况下是“8”)(步骤S917)。当检出的错误数量超出可校正的错误数量时(步骤 S917:否),处理器240将读取命令处理中的错误发生通知给主机计算机100以终止该读取 命令处理(步骤S934)。 0100 另。
36、一方面,当检出的错误数量在可校正的错误数量之内时,错误检测校正部230 对从存储器300传输的528字节数据执行错误校正(步骤S918)。在错误校正之后,处理器 240执行保持在表管理部220中的错误信息管理表221的更新(步骤S920)。 0101 在错误检测和错误校正之后或在未检出错误时,经由主机接口201将不包含ECC 的512字节数据传输到主机计算机100(步骤S931)。 0102 接着,在读取命令处理中,处理器240将传输到主机计算机100的数据的大小总和 与由读取命令指定的数据大小进行比较(步骤S932)。当所传输的数据的大小总和小于指 定的数据大小(步骤S932:否)时,重复步。
37、骤S912以及接下来的步骤的处理。另一方面, 说 明 书CN 103995756 A 10 8/24页 11 当传输的数据的大小总和达到指定的数据大小(步骤S932:是)时,处理器240将读取命 令处理的正常完成通知给主机计算机100以终止读取命令处理(步骤S933)。 0103 错误信息管理表的更新处理的操作 0104 图7是示出了根据本发明第一实施例的错误信息管理表的更新处理过程的示例 的流程图。 0105 首先,确定在步骤S915中检出错误处的物理地址是否是注册在错误信息管理表 221的物理地址(步骤S923)。当检出错误处的物理地址是注册的物理地址时(在步骤 S923:是),确定检出的。
38、错误数量是否大于注册的错误数量(步骤S928)。当检出的错误数 量大于注册的错误数量时(步骤S928:是),使用检出的错误数量来更新错误信息管理表 221中相应条目中的错误数量(步骤S929)。 0106 当检出错误处的物理地址未注册在错误信息管理表221中时(步骤S923:否),确 定错误信息管理表221是否具有空条目(步骤S924)。当错误信息管理表221具有空条目 时(步骤S924:是),将检出错误处的物理地址和检出的错误数量注册到该空条目(步骤 S927)。 0107 另一方面,当错误信息管理表221不具有空条目时(步骤S924:否),检出的错误 数量与注册在各个条目中的错误数量之中的。
39、最小值进行比较(步骤S925)。当检出的错误 数量大于最小值时(步骤S925:是),使用检出的错误数量和检出错误处的物理地址来更新 具有最小值的条目(步骤S926)。 0108 顺便一提的是,当在步骤S925中将检出的错误数量与注册在各个条目中的错误 数量之中的最小值进行比较时,可以在检出的错误数量大于或等于最小值时执行步骤S926 的处理。 0109 图8是示出了根据本发明第一实施例的错误信息管理表的更新的第一示例的示 意图。本示例是在步骤S927中将检出错误处的物理地址和检出的错误数量注册到空条目 的情况下的示例。结果发现,将新的内容添加到第四条目。 0110 图9是示出了根据本发明第一实。
40、施例的错误信息管理表的更新的第二示例的示 意图。本示例是在步骤S929中使用检出的错误数量来更新错误信息管理表221中的相应条 目中的错误数量的情况下的示例。结果发现,将第四条目中的错误数量从“3”更新成“4”。 0111 图10是示出了根据本发明第一实施例的错误信息管理表的更新的第三示例的 示意图。本示例是在步骤S926中使用检出的错误数量以及检出错误的物理地址来更新 具有错误数量的最小值的条目的情况下的示例。结果发现,在第四条目中,将具有错误数 量“3”的物理地址“0x00001234”更新成具有错误数量“4”的物理地址“0x00000001”。 换言之,将物理地址“0x00001234”。
41、的条目逐出,并且被具有较大的错误数量的物理地址 “0x00000001”取代。 0112 刷新命令处理的操作 0113 图11是示出了根据本发明第一实施例的刷新命令处理的处理过程的示例的流程 图。换言之,该处理过程是当存储器控制器200从主机计算机100接收刷新命令时执行的 处理过程。 0114 首先,处理器240确定错误信息管理表221是否具有有效条目(步骤S941)。有 效条目是错误数量不为零的条目。当错误信息管理表221不具有有效条目时(步骤S941: 说 明 书CN 103995756 A 11 9/24页 12 否),处理器240将刷新命令处理的正常完成通知给主机计算机100以终止刷。
42、新命令处理 (步骤S949)。另一方面,当错误信息管理表221具有有效条目时(步骤S941:是),处理器 240执行下面的处理。 0115 处理器240从有效条目中选择待刷新的物理地址(步骤S942)。在第一实施例中, 假设以具有较大的错误数量的物理地址的次序执行处理,并且当错误数量在一些物理地址 之间相同时,以物理地址的升序选择将要刷新的物理地址。 0116 处理器240指定在步骤S942中选择的物理地址以从存储器300的指定物理地址 读取数据,并将所读取的数据传输到错误检测校正部230(步骤S943)。此时,被传输的数据 的大小是528字节。 0117 错误检测校正部230对在步骤S943。
43、中传输的528字节数据执行错误检测,当错误 被检出时,错误检测校正部230进一步执行错误校正(步骤S944)。 0118 将该528字节数据(其包含16字节ECC以及在步骤S944中被校正的512字节数 据)从错误检测校正部230传输,并然后将其写入到存储器300的在步骤S942中选择的物 理地址(步骤S946)。 0119 接着,错误信息管理表221中的被刷新的条目中的错误数量被更新成“0”,这使得 被刷新的条目成为空条目(步骤S948)。之后,重复步骤S941和接下来的步骤中的处理。 0120 顺便一提的是,在本示例中,假设错误信息管理表221中的所有有效条目都被刷 新。然而,主机计算机1。
44、00可以指定在执行刷新命令时的最大的条目数量。在这种情况下, 在步骤S941中,确定经历了步骤S943至S948中的处理的条目的数量是否小于最大的条目 数量,以及是否存在未经历步骤S943至S948中的处理的条目。 0121 图12是示出了根据本发明第一实施例的刷新命令的处理的示例的示意图。在本 示例中,结果发现,第一条目被刷新,且由此被更新成空条目。 0122 刷新命令的执行时机(execution timing) 0123 刷新命令的执行时机是由主机计算机100确定的。执行时机的示例可以包含周期 性的时机、电源关闭前的时机、主机计算机未执行读取命令和写入命令时的时机以及在主 机计算机变换成。
45、诸如睡眠模式等低电能消耗模式之前的时机。 0124 在读取命令结束时,可以将错误信息管理表221的状态通知给主机计算机100,作 为由主机计算机100使用的用于确定刷新命令的执行时机的信息。例如,可以通知错误信 息管理表221中的有效条目的数量,即,错误数量不是零的条目的数量。 0125 有效条目数量的通知使主机计算机100能够在条目数量超过可由错误信息管理 表221管理的条目数量(在上述示例中是四个条目)之前发出刷新命令。另外,有效条目 数量的通知使主机计算机100能够只有在错误信息管理表221具有有效条目时才会发出刷 新命令。相应地,能够抑制控制器的与命令处理相关的开销。 0126 另外,。
46、为了减少到主机计算机100的通知的数量,主机计算机100可以在存储器控 制器200中提前设定通知条件,且只有在满足条件时才会发出通知。设定通知条件的方法 的示例可以包括例如主机计算机100通过使用命令等来设定条件的方法以及例如在出厂 时在主机计算机100使用存储器系统之前设定条件的方法。例如,在“有效条目的数量大于 或等于三个”的条件被设置为主机计算机100的通知条件的情况下,在读取命令完成时,如 果错误信息管理表221中的有效条目的数量变成“三个”或“四个”则发出通知。 说 明 书CN 103995756 A 12 10/24页 13 0127 顺便一提的是,在假设用于刷新的专用命令的情况下。
47、给出了说明。然而,当从主机 计算机100接收另一个命令时,除执行该命令之外,可以执行参照图11说明的刷新处理。 例如,可想到的是,当接收到ATA/ATAPI命令集(ATA8-ACS)中所定义的清除缓存(FLUSH CACHE)命令或清除外部缓存(FLUSH CACHE Ext)命令时,除了这些命令的执行之外,还执 行刷新处理。在ATA8-ACS的示例中,可以使用立即待机(STANDBY IMMEDIATE)命令、休眠 (SLEEP)命令等。另外,也可以使用小型计算机系统接口批命令3(SCSI Block commands-3, SBC-3)中定义的同步缓存(SYNCHRONIZE CACHE)。
48、命令、启停单位(START/STOP UNIT)命令 等。注意,在这些情况下,在刷新处理完成之后向主机计算机100发送处理完成通知。 0128 写入命令处理的操作 0129 图13是示出了根据本发明第一实施例的写入命令处理的处理过程的示例的流程 图。换言之,该处理过程是当存储器控制器200从主机计算机100接收写入命令时执行的 处理过程。 0130 处理器240基于由主机接口201接收的写入对象的首逻辑地址和数据大小将处理 划分成逻辑地址单位(步骤S951)。一个逻辑地址由一个处理来处理。例如,在“0”被指定 作为写入对象的首地址而“1”被指定作为数据大小的情况下,执行一个处理。在“0”被指 。
49、定作为写入对象的首逻辑地址而“2”被指定作为数据大小的情况下,该处理被划分成两个 处理。 0131 处理器240选择并确定将要经历写入处理的逻辑地址(步骤S952)。在第一实施 例中,基于各个写入对象的首逻辑地址的次序来确定将要经历写入处理的逻辑地址。在“0” 被指定作为由写入命令指定的首逻辑地址,并且“2”被指定作为数据大小时,第一个将要经 历处理的逻辑地址被确定成“0”。后续地,将要经历处理的逻辑地址被确定是“1”。 0132 处理器240通过使用保持在表管理部220中的地址转换表222将在步骤S952中 选择的逻辑地址转换成物理地址(步骤S953)。 0133 处理器240将由主机接口201接收的一个逻辑地址的512字节数据传输到ECC生 成部210(。