存储存储器重映射信息的非易失性存储器.pdf

上传人:Y948****062 文档编号:971780 上传时间:2018-03-22 格式:PDF 页数:24 大小:702.34KB
返回 下载 相关 举报
摘要
申请专利号:

CN201010219745.9

申请日:

2010.06.29

公开号:

CN101937374A

公开日:

2011.01.05

当前法律状态:

授权

有效性:

有权

法律详情:

授权|||著录事项变更IPC(主分类):G06F 11/10变更事项:申请人变更前:微米技术有限公司变更后:美光科技公司变更事项:地址变更前:美国艾达荷变更后:美国艾达荷|||专利申请权的转移IPC(主分类):G06F 11/10变更事项:申请人变更前权利人:恒忆有限责任公司变更后权利人:微米技术有限公司变更事项:地址变更前权利人:瑞士罗尔变更后权利人:美国艾达荷登记生效日:20120528|||实质审查的生效IPC(主分类):G06F 11/10申请日:20100629|||公开

IPC分类号:

G06F11/10

主分类号:

G06F11/10

申请人:

恒忆有限责任公司

发明人:

吉尔吉拉特·比林; 斯蒂芬·鲍尔斯; 马克·林万德; 塞缪尔·戴维·波斯特

地址:

瑞士罗尔

优先权:

2009.06.30 US 12/494,994

专利代理机构:

中科专利商标代理有限责任公司 11021

代理人:

杨静

PDF下载: PDF下载
内容摘要

一种系统,包括:控制器,将表示关于存储装置的重映射信息的数字信号存储到内容可寻址存储器CAM,其中所述控制器适于:如果所述CAM中存储的所述重映射信息被更新,则将所述CAM中存储的所述重映射信息的至少一部分存储到非易失性可离散寻址的存储器中。

权利要求书

1: 一种系统, 包括 : 控制器, 将表示关于存储装置的重映射信息的数字信号存储到内容可寻址存储器 CAM, 其中所述控制器适于 : 如果所述 CAM 中存储的所述重映射信息被更新, 则将所述 CAM 中存储 的所述重映射信息的至少一部分存储到非易失性可离散寻址的存储器中。
2: 根据权利要求 1 所述的系统, 还包括 : 纠错编码 ECC 解码器, 接收从所述存储装置读取的表示数据的数字信号, 并确定与所 读取的表示所述数据的信号相关联的比特错误率和 / 或比特错误数目, 其中所述控制器适于 : 至少部分地基于所述比特错误率和 / 或所述比特错误数目是否 达到或超过错误阈值, 存储所述重映射信息。
3: 根据权利要求 1 所述的系统, 其中所述非易失性可离散寻址的存储器包括相变存储 器 PCM。
4: 根据权利要求 1 所述的系统, 其中所述重映射信息包括一个或多个重映射地址表。
5: 根据权利要求 1 所述的系统, 其中所述非易失性可离散寻址的存储器能够在定向至 所述存储装置的读取 / 写入处理期间, 在运行中以新的重映射信息来更新。
6: 根据权利要求 1 所述的系统, 其中所述 CAM 以及所述非易失性可离散寻址的存储器 实质上彼此同步。
7: 根据权利要求 1 所述的系统, 其中所述非易失性可离散寻址的存储器包括第二 CAM。
8: 一种方法, 包括 : 确定与从存储装置读取的表示数据的数字信号相关联的比特错误率和 / 或比特错误 数目 ; 以及 在非易失性可离散寻址的存储器中存储表示关于所述存储装置的重映射信息的数字 信号, 其中所述重映射信息至少部分地基于所述比特错误率和 / 或所述比特错误数目是否 达到或超过错误阈值。
9: 根据权利要求 8 所述的方法, 其中所述非易失性可离散寻址的存储器包括相变存储 器 PCM。
10: 根据权利要求 8 所述的方法, 其中所述重映射信息包括一个或多个重映射地址表。
11: 根据权利要求 8 所述的方法, 其中所述非易失性可离散寻址的存储器能够在定向 至所述存储装置的读取 / 写入处理期间, 在运行中以新的重映射信息来更新。
12: 根据权利要求 8 所述的方法, 其中所述非易失性可离散寻址的存储器包括内容可 寻址存储器 CAM。
13: 根据权利要求 10 所述的方法, 其中所述存储装置包括主存储器部分和备用存储器 部分, 所述重映射地址对应于所述备用存储器部分中的存储位置。
14: 根据权利要求 8 所述的方法, 其中所述存储还包括 : 将所述重映射信息写入所述非 易失性可离散寻址的存储器的一部分, 所述一部分的大小实质上与所述重映射信息的大小 相同。
15: 一种系统, 包括 : 主机, 从 / 向存储装置读取 / 写入, 并执行一个或多个应用 ; 纠错编码 ECC 解码器, 接收从所述存储装置读取的表示数据的数字信号, 并确定与所 2 读取的表示所述数据的信号相关联的比特错误率和 / 或比特错误数目 ; 以及 重映射控制器, 至少部分地基于所述比特错误率和 / 或所述比特错误数目是否达到 或超过错误阈值, 将表示所述存储装置的重映射地址的数字信号存储到内容可寻址存储器 CAM, 其中所述 CAM 包括相变存储器 PCM。
16: 根据权利要求 15 所述的系统, 其中所述 CAM 适于 : 接收表示读取地址的数字信号 并发送表示信号的数字信号, 所述信号至少部分地响应于所述读取地址是否对应于所述 CAM 中存储的所述重映射地址。
17: 根据权利要求 16 所述的系统, 还包括 : 选择部分, 选择所述读取地址或所述重映射地址, 以用作要从所述存储装置进行读取 的地址, 其中, 所述选择至少部分地基于所述信号。
18: 根据权利要求 15 所述的系统, 其中所述存储装置包括主存储器部分和备用存储器 部分, 所述重映射地址对应于所述备用存储器部分中的存储位置。
19: 根据权利要求 18 所述的系统, 其中所述存储装置还包括所述 ECC 解码器和相变存 储器部分。
20: 根据权利要求 15 所述的系统, 其中所述比特错误率和 / 或所述比特错误数目至少 部分地响应于所述存储器的物理劣化。

说明书


存储存储器重映射信息的非易失性存储器

    【技术领域】
     所公开的本发明主题涉及对存储装置的重映射。背景技术 存储装置用于多种电子设备, 例如计算机、 蜂窝电话、 PDA、 数据记录器和导航设备 ( 这里只给出一些示例 )。在这种电子设备中, 可以采用多种类型的非易失性存储装置, 例 如 NAND 或 NOR 闪存、 SRAM、 DRAM 和相变存储器 ( 这里只给出一些示例 )。一般而言, 可以使 用写入或编程处理在这种存储装置中存储信息, 并可以使用读取处理来获取存储的信息。
     这种非易失性存储装置可以包括存储单元, 存储单元随时间慢慢劣化, 导致在对 这种存储单元进行存取时可能发生读取和 / 或写入错误的可能性增大。错误也可能由制造 缺陷和 / 或边际存储装置构造 ( 这里只给出一些示例 ) 造成。虽然随后可以在存储装置内 校正此类错误, 但是随着例如错误数目的增长, 这种错误校正可能变得很困难或不可能了。
     发明内容
     为了解决上述技术问题, 例如, 本发明提供了一种系统, 包括 : 控制器, 将表示关于 存储装置的重映射信息的数字信号存储到内容可寻址存储器 CAM, 其中所述控制器适于 : 如果所述 CAM 中存储的所述重映射信息被更新, 则将所述 CAM 中存储的所述重映射信息的 至少一部分存储到非易失性可离散寻址的存储器中。附图说明
     参照以下附图, 描述非限制性和非穷尽实施例, 在附图中, 相同参考数字指代相同 部分, 除非有特别说明。
     图 1 是根据实施例的存储器配置的示意图 ;
     图 2 是根据实施例的存储器读取处理的流程图 ;
     图 3 是根据另一实施例的存储器读取处理的流程图 ;
     图 4 是根据实施例的计算系统和存储装置的示意框图 ;
     图 5 是根据实施例的存储器读取处理的流程图 ;
     图 6 是根据另一实施例的存储器读取处理的流程图 ;
     图 7 是根据实施例的矢量重映射表的示意图 ;
     图 8 是根据实施例的存储系统的示意框图 ;
     图 9 是根据实施例的计算系统和存储装置的示意框图。 具体实施方式
     在本说明书中, 对 “一个实施例” 或 “实施例” 的引述意味着, 结合该实施例描述的 具体特征、 结构或特点包括在所要求保护的主题的至少一个实施例中。 因此, 在本说明书中 多处出现的短语 “在一个实施例中” 或 “在实施例中” 不一定全部是指同一实施例。此外,具体特征、 结构或特点可以结合在一个或更多实施例中。
     在实施例中, 关于存储装置的重映射信息可以保持在非易失性可离散寻址的存储 器中。 这种重映射信息可以包括重映射矢量, 重映射矢量提供重映射地址, 以作为例如针对 存储装置的读取 / 写入请求的一部分, 替代由处理器提供的地址。这里, 可离散寻址的存储 器可以包括存储单元, 例如, 这种存储单元不需要每次都成块和 / 或成扇区地写入, 而是可 以单独地被寻址或者以相对较小的组来成组地被寻址。例如, 向 NOR 闪存类型的存储器写 入数据可以包括向存储单元的较大块写入, 即使要写入的数据只需要一个或两个存储单元 大小的存储空间。在另一示例中, 向相变存储器 (PCM) 写入诸如重映射信息等数据, 这可以 包括只向与要写入的数据的存储大小基本上匹配的多个存储单元写入。
     在这种非易失性可离散寻址的存储器中保持重映射信息, 这可以提供对要重映射 的存储器的特定区域的粒度更细的控制。例如, 这种非易失性可离散寻址的存储器可以允 许离散寻址, 以在存储空间的相对较小的部分中存储重映射矢量。 相反, 不可离散寻址的存 储器可以使用块和 / 或扇区寻址, 从而仅对单个重映射矢量的存储可能占用存储装置的相 对较大部分。此外, 使用块和 / 或扇区寻址的存储器可以包括擦除处理, 以为后续的写入处 理准备存储块和 / 或扇区, 这造成了相比于可离散寻址的存储器, 需要更大量的写入时间。 因此, 在非易失性可离散寻址的存储器中存储和保持重映射信息可以提供提高存储装置的 存储空间利用率以及减少写入处理所需的时间的途径。在一种实施方式中, 在非易失性可 离散寻址的存储器中保持重映射信息可以允许使用这种重映射信息所相关的易失性存储 装置, 这是因为这种非易失性存储器即使在下电 (power down) 期间也可以存储重映射信 息。因此, 在非易失性可离散寻址的存储器中存储和保持重映射信息可以允许以更大的灵 活性来选择存储器类型, 例如 NAND 或 NOR 闪存、 SRAM、 DRAM 和 PCM( 这里只给出一些示例 )。
     在一种实施方式中, 重映射信息所相关的存储装置可以在物理上包括非易失性可 离散寻址的存储器, 以便单个晶元 (die) 或集成电路芯片包括存储装置和非易失性可离散 寻址的存储器两者。 但是, 在这种实施方式中, 存储装置可以与非易失性可离散寻址的存储 器不同, 以便可以通过处理器和 / 或存储器控制器分离地访问该存储装置和非易失性可离 散寻址的存储器。例如, 用于存储关于存储装置的重映射信息的非易失性可离散寻址的存 储器可以驻留在存储装置上, 但是依然与这种存储装置不同。 继续参照该示例, 这种存储装 置可以包括具有多个存储器晶元的存储模块 : 可以经由单个处理器和 / 或存储器控制器访 问存储器晶元, 可以通过分离的单个处理器和 / 或存储器控制器访问非易失性可离散寻址 的存储器。当然, 在非易失性可离散寻址的存储器上保持重映射信息的这些细节和优点仅 仅是示例, 本发明要求保护的主题不限于此。
     例如, 相比于在存储装置内保持重映射信息, 在非易失性可离散寻址的存储器上 存储和保持关于存储装置的重映射信息也可以减少等待时间以及 / 或者提高对可用存储 器容量的利用。在一种实施方式中, 可以在运行中 (on the fly) 生成重映射信息, 例如在 由处理器发起的读取 / 写入处理等运行时间处理期间, 其中对从存储装置读取的数据进行 错误校验, 如下所述。在另一实施方式中, 可以由系统执行初始化处理, 以包括对存储装置 的易出错部分进行扫描。再次, 在非易失性可离散寻址的存储器上保持重映射信息的这些 细节和优点仅仅是示例, 本发明要求保护的主题不限于此。
     在实施例中, 存储装置可以包括存储单元, 存储单元随时间慢慢劣化, 导致在对这种存储装置进行例如读取时可能发生一个或多个错误的可能性增大。 存储装置也可以包括 由其制造导致的缺陷和 / 或边际功能存储单元。例如, 可以使用纠错码 (ECC) 或其他此类 技术, 在计算系统内的若干区域内纠正这种错误。 从系统角度来看, 可以确定是否要继续使 用这种易出错的单元。如下要详细说明的, 这种确定可以至少部分地基于此类错误的数目 与错误阈值的比较, 其中错误阈值可以在例如存储装置的设计阶段定义。在一种实施方式 中, 可以在特定存储单元展示出过量错误之前, 中断对这些单元的使用。换言之, 如果易出 错的存储单元产生的错误数目接近错误阈值, 则可以中断对这种存储单元的使用。 例如, 为 了确定可以中断对存储单元的使用, 不需要达到该阈值。 因此, 观察错误的数目接近错误阈 值, 这可以是预测特定的存储单元可能很快产生太多错误的途径, 从而可以例如在易出错 的存储单元实际上开始临界地发生故障之前, 停止对这些易出错存储单元的使用。如果要 中断对特定的存储单元的使用, 则可以按照保持存储装置总容量的方式来选择替代的存储 单元。
     因此, 在一个实施例中, 保持存储装置的尺寸容量的处理包括 : 将易出错的存储位 置重映射到正常工作的存储位置, 而不损失总的系统存储空间 ( 例如, 存储装置容量 )。这 种重映射可以至少部分地基于与因从易出错的存储位置进行读取而发生错误的量和 / 或 频率有关的信息。这里, 存储位置是指例如可以使用标识存储位置和 / 或部分的一个或多 个地址, 经由读取和 / 或写入处理来访问的存储装置的一部分。如下要详细说明的, 例如, ECC 引擎可以用于确定与读取存储器特定部分相关联的比特错误率和 / 或比特错误数目。 随后, 可以将比特错误率和 / 或比特错误数目与错误阈值相比较, 例如该错误阈值可以包 括到可接受错误数目的实质性限制。根据这种比较的结果, 可以决定是否停用 (retire) 产 生错误的存储器的特定部分, 例如中断对其的使用。 在特定实施例中, 停用存储装置的一部分的处理可以包括 : 将存储在存储装置的 要停用的一部分中的、 代表数据的数字信号移动到存储装置的另一部分。在一种实施方式 中, 可以将从存储装置的停用部分迁出的代表数据的数字信号移动到存储装置的备用部 分。例如, 这种存储器备用部分可以包括存储装置中初始没有识别或考虑为存储装置的整 个容量的一部分的物理位置, 如下要详细说明的。停用存储装置的一部分的处理也可以包 括: 将存储装置的要停用部分的地址重映射成对应于存储装置的新的备用部分的地址。这 种重映射的地址可以例如如上所述存储在非易失性可离散寻址的存储器中。当然, 这些处 理仅仅是示例, 本发明要保护的主题不限于此。
     在一个实施例中, 例如上述处理可以涉及包括器件的存储装置。因此, 随着 PCM 老 化, 由 PCM 的部分产生的比特错误率和 / 或比特错误数目可能增大。在一定程度上, 可以使 用例如 ECC 引擎和 / 或其他纠错技术来纠正这些错误。但是, 错误数目可能增大, 超出了这 些纠错技术的能力。 因此, 希望在指示这种存储部分已经或正开始产生过量错误的趋势时, 就停用这种存储部分。
     例如上述实施例可能允许对存储装置的成功使用涉及到相对不可靠的技术。例 如, 使用本文描述的实施例, 可以利用先前认为是不可用的晶元。此外, 这些实施例可能将 存储装置的寿命延长到其大多数存储单元的寿命, 而不是其相对少量的存储单元的寿命。
     图 1 是根据实施例的存储器配置的示意图。 存储装置 100 可以划分成主存储器 110 和备用存储器 120。存储装置 100 可以包括例如 NAND 或 NOR 闪存、 SRAM、 DRAM 和 PCM( 这里
     只给出一些示例 )。存储装置 100 包括具有这种主和备用存储部分以及 / 或者一个或多个 其他存储部分的用户可寻址存储空间, 这些存储部分可以是或不是彼此邻接的, 可以驻留 或不驻留在单个装置中。主存储器 110 和备用存储器 120 可以包括可独立寻址的空间, 这 些空间可通过例如读取、 写入和 / 或擦除处理来访问。
     根据实施例, 存储装置 100 的一个或多个部分可以存储表示由存储装置 100 的特 定状态表达的数据和 / 或信息的信号。例如, 可以通过影响或改变存储装置 100 的一部分 的状态, 将数据和 / 或信息表示为二进制信息 ( 例如, 1 和 0), 来在存储装置 100 的该部分 中 “存储” 表示数据和 / 或信息的电子信号。这样, 在特定实施方式中, 改变存储器的一部 分的状态来存储表示数据和 / 或信息的信号, 这构成了将存储装置 100 变换到不同的状态 或事物。
     存储装置 100 可以配置为初始包括与存储装置 100 的全部可用容量对应的主存储 器 110。这种初始配置可以额外地包括备用存储器 120, 在确定存储装置容量时, 不需要包 括备用存储器 120。 但是, 如果主存储器的部分变得不可用或例如在读取 / 写入处理期间造 成过量的错误, 则可以使用备用存储器 120 来替代主存储器 110 的部分。当然, 这种存储器 配置的细节仅仅是示例, 本发明要保护的主题不限于此。 图 2 是根据实施例的存储器读取 / 写入处理 200 的流程图。在方块 220, 例如可 以由处理器执行的系统应用发起对存储装置的一部分进行读取或写入的读取 / 写入处理, 该系统应用提供一个或多个读取 / 写入地址, 来分别标识要读取或写入所存储数据的一个 或多个存储位置。开始于方框 230, 这种读取 / 写入地址可以将数据读取 / 写入处理沿着 先前选择的数据路径定向, 该数据路径是至少部分地基于读取 / 写入地址是否对应于已被 停用的存储位置而选择的。在本示例中, 存储装置可以包括主存储器部分和备用存储器部 分, 例如图 1 所示的存储装置 100。在特定实施例中, 备用存储器部分可以用于替代被停用 的主存储器部分。在这种存储位置还未停用的情况下, 在方框 240, 数据路径可以将数据读 取 / 写入处理定向至主存储器部分中对应于由处理器传输的地址的位置。这种定向可以由 适当地切换的硬件切换组件来执行, 例如由复用器来执行。 例如, 可以向硬件切换组件施加 信号, 以选择引向至对应于由处理器传输的地址的主存储器部分的数据路径。由硬件切换 组件选择的其他数据路径可以包括引向至存储装置的不同部分 ( 例如备用存储器部分 ) 的 各个单独数据路径。
     由此, 在方框 250, 由处理器传输的读取 / 写入地址可以用于从存储装置的主存储 器部分读取或向其写入。随后, 在方框 260, 从存储装置的读取地址读取的数据可以被提供 给错误校验硬件和 / 或软件, 例如 ECC 解码器和 / 或其他此类纠错技术。在向存储装置写 入数据的情况下, 可以执行后续的读取处理来验证成功的写入操作 : 该读取的数据可以提 供给错误校验硬件和 / 或软件, 例如 ECC 解码器和 / 或其他此类纠错技术。
     在已经停用了存储位置的情况下, 在方框 245, 数据路径可以将数据读取 / 写入处 理定向至备用存储器部分中的位置, 而不是对应于由处理器传输的地址的存储位置。这种 路径定向可以由适当地切换的硬件切换组件来执行, 例如由复用器来执行。 具体而言, 可以 向硬件切换组件施加信号, 以选择引向至对应于由处理器传输的地址的备用存储器部分的 数据路径。由硬件切换组件选择的其他数据路径可以包括引向至存储装置的不同部分 ( 例 如主存储器部分和 / 或其他备用存储器部分 ) 的各个单独数据路径。
     由此, 在方框 255, 由处理器传输的读取 / 写入地址虽然原始是定向至主存储器部 分的地址, 但是可以重定向至存储装置的备用存储器部分。 随后, 在方框 260, 从备用存储器 部分读出或向其写入的数据可以被提供给错误校验硬件和 / 或软件, 例如 ECC 解码器和 / 或其他此类纠错技术。在向存储装置写入数据的情况下, 可以执行后续的读取处理来验证 成功的写入操作 : 该读取的数据可以提供给错误校验硬件和 / 或软件, 例如 ECC 解码器和 / 或其他此类纠错技术。 当然, 这种存储器读取处理的细节仅仅是示例, 本发明要保护的主题 不限于此。
     图 3 是根据实施例的存储器读取 / 写入处理 300 的流程图。在方框 310, 例如可 以由系统应用发起对存储装置的一部分进行读取或写入的读取 / 写入处理, 该系统应用提 供一个或多个读取 / 写入地址, 来分别标识要读取或写入所存储数据的一个或多个存储位 置。例如对读取的数据进行奇偶校验的 ECC 硬件和 / 或软件可以用于校验和 / 或校正读取 的数据中的错误。 随后, 如在方框 320, 将初始读取的数据与校正后的读取数据相比较, 以确 定存储器读取 / 写入处理中已发生的错误数目。 该错误数目可以表达成比特错误率 (BER), 这可以包括例如错误比特的数目与读取的比特的总数目之比。从存储装置的一部分读取 而造成的 BER 或错误数目可以与错误阈值相比较, 该错误阈值可以包括表示可接受的最大 BER 或可接受的最大错误数目的值, 例如, 超出该值的额外错误可能无法被成功校正。该错 误阈值可以包括表示对例如图 1 所示的存储装置 100 等特定存储装置而言可校正的错误的 BER 或错误数目的实质性上限的数目。在该错误阈值处或以下, ECC 硬件和 / 或软件能够校 正读取错误。但是在该错误阈值以上, 可能无法校正所有读取错误的可能性相对较高。 在方框 330, 至少部分地基于从存储器的一部分的读取是否造成过多错误, 来决定 是否停用该存储器部分。如果错误数目处于或在错误阈值以下, 则可以决定不停用该存储 器部分, 读取 / 写入处理 300 可以前进至方框 335。在此, 可以向硬件切换组件提供信号, 以将针对读取 / 写入处理而传输数据的路由或路径定向至原始主存储器部分。接着, 在方 框 340, 例如, 可以将读取的数据提供给应用, 该应用请求将读取的数据或写入的数据写入 到原始主存储器部分中。
     另一方面, 如果该错误数目在错误阈值以上, 则可以决定停用存储器的一部分, 读 取 / 写入处理 300 可以前进至方框 350, 在此, 例如, 处理可以开始停用这种导致过多错误的 存储器部分。在特定实施方式中, 可以通过向硬件切换组件提供信号, 以将用于读取 / 写入 处理的数据路由定向至原始主存储器部分, 来再次读取存储在要停用的存储器部分中的数 据。 接着, 在方框 360, 可以向硬件切换组件提供信号, 以将用于后续读取 / 写入处理的数据 路由定向至用于替代原始主存储器部分的备用存储器部分。接着, 在方框 340, 例如, 可以 将读取的数据提供给应用, 该应用请求将读取的数据或写入的数据写入到备用存储器部分 中。当然, 这种存储器读取处理的细节仅仅是示例, 本发明要保护的主题不限于此。
     图 4 是示出了包括存储装置 455 的计算系统 400 的实施例的示意图, 存储装置 445 可以划分成主部分 450 和备用部分 460, 例如如参照图 1 所描述的。计算系统 400 可以代 表可配置为管理存储装置 455 的任何设备、 设备和 / 或机器。作为示例但非限制性地, 计算 系统 400 可以包括 : 一个或多个计算设备和 / 或平台, 例如台式计算机、 膝上型计算机、 工作 站、 服务器设备等 ; 一个或多个个人计算或通信装置或设备, 例如个人数字助理、 移动通信 设备等 ; 计算系统和 / 或关联的服务提供商功能装置, 例如数据库或数据存储服务提供商 /
     系统 ; 以及 / 或者其任意组合。
     应该认识到, 可以通过使用或包括硬件、 固件、 软件或其任意组合, 来实现计算系 统 40 中所示的多种装置的全部或一部分、 以及这里进一步描述的处理和方法。因此, 作 为示例但非限制性地, 计算系统 400 可以包括 : 至少一个处理单元 410, 通过硬件切换组件 470 操作性地耦合至存储器 455 ; 存储器控制器 435 ; 以及错误检测和存储器停用确定组件 440( 以下为方便起见, 称为 “错误检测组件” )。 处理单元 410 可以代表可配置为执行数据计 算过程或处理的至少一部分的一个或多个电路。作为示例但非限制性地, 处理单元 410 可 以包括一个或多个处理器、 控制器、 微处理器、 微控制器、 专用集成电路、 数字信号处理器、 可编程逻辑器件、 现场可编程门阵列等、 以及其任意组合。处理单元 410 可以与存储器控制 器 435 通信, 以处理例如读取、 写入和 / 或擦除等存储器相关操作。处理单元 410 可以包括 配置为与存储器控制器 435 通信的操作系统。这种操作系统例如可以生成要经由地址输出 端口 415 和 / 或数据读取 / 写入端口 420 发送至存储器控制器 435 的命令。这种命令可以 包括例如与存储器 455 对应的存储地址。
     计算系统 400 可以包括例如输入 / 输出部分 480, 输入 / 输出部分 480 可以代表 可配置为接收或引入人类和 / 或机器输入的一个或多个装置或特征、 可配置为传递或提供 人类和 / 或机器输出的一个或多个装置或特征。作为示例但非限制性地, 输入 / 输出部分 480 可以包括操作性配置的显示器、 扬声器、 键盘、 鼠标、 轨迹球、 触摸屏、 数据端口等。
     存储器控制器 435 可以包括非易失性可离散寻址的存储器 430, 来保持用于经由 硬件切换组件 470 在引向至存储器 455 的多个部分的多条数据路径 475 中进行选择的信 息。在一个实施例中, 可离散寻址的存储器可以包括 PCM。例如, 这种信息可以包括与选择 特定数据路径 474 的特定存储器选择值相关联的存储地址的表 ; 如果处理单元 410 提供地 址作为读取 / 写入操作的一部分, 则可以使用非易失性可离散寻址的存储器 430 来将该地 址与选择至存储器的特定数据路径的特定存储器选择值相关联。这里, 例如, 可以进行选 择, 以挑选至主存储器 450 或备用存储器 460 的数据路径。如上所述, 该选择可以至少部分 地基于与读取 / 写入操作中提供的地址相关联的存储器 455 的位置是否已被停用。为了 通过具体示例示出, 处理单元 410 可以提供地址作为读取操作的一部分。由存储器控制器 435 接收该地址, 然后将该地址与非易失性可离散寻址的存储器 430 中保持的特定的存储 器选择值相关联。如下说明的, 这种存储器选择值可以是至少部分地基于由错误检测组件 440 提供的信息而已经建立的。然后, 可以将这种存储器选择值提供给硬件切换组件 470, 以在多条数据路径 475 中选择至存储器的一条数据路径。在本具体实例中, 该地址对应于 存储器 455 中先前已停用的位置。因此, 寄存器 430 可以将该地址与如下存储器选择值相 关联 : 如果将该存储器选择值提供给硬件切换组件 470, 则可以选择引向至备用存储器 460 中的位置的数据路径。 虽然图 4 示出了两条数据路径来代表多条数据路径 475, 但是应该注 意, 可以有任意数目的数据路径。此外, 硬件切换组件 470 不必局限于每次选择一条数据路 径。类似地, 可以存在包括有至存储器 455 的任意部分的任意数目的数据路径的组合, 其中 存储器 455 可以包括例如封装在一起或单独封装的一个或多个存储器件。存储器 455 可以 代表任何的数据存储机构。存储器 455 可以包括例如盘驱动、 光盘驱动、 磁带驱动、 固态存 储驱动等。因此, 这里描述的配置仅仅是示例, 本发明要保护的主题不限于此。
     如上所述, 例如 PCM 等非易失性可离散寻址的存储器 430 可以至少部分地基于由错误检测组件 440 提供的信息, 来建立和保持信息。在一个实施例中, 可以将从存储器 455 读取的数据提供给错误检测组件 440, 错误检测组件 440 可以检查错误, 以确定与读取存储 器 455 的特定部分相关联的比特错误率和 / 或比特错误数目。然后, 可以将该错误信息提 供给存储器控制器 435, 存储器控制器 435 可以将比特错误率和 / 或比特错误数目与例如错 误阈值相比较。可以根据该比较的结果, 决定是否停用存储器的该特定部分。因此, 可以将 存储器的该特定部分的地址与如下存储器选择值相关联 : 如果将该存储器选择值提供给硬 件切换组件 470, 则可以用于选择至存储器的合适部分的数据路径。如上所述, 非易失性可 离散寻址的存储器 430 可以保持与特定的存储地址相关联的存储器选择值。
     如图 4 所示, 计算系统 400 可以包括硬件部分 490, 该硬件部分 490 包括例如存储 器控制器 435、 非易失性可离散寻址的存储器 430、 硬件切换组件 470 和 / 或存储器 455。在 特定实施例中, 停用存储装置的一部分以及 / 或者确定是否从 / 向主或备用存储器读取 / 写入, 可以包括对于可以发出读取 / 写入指令的处理单元 410 而言透明的处理。因此, 处 理器单元 410 不需要接收或处理从产生错误的存储器特定部分读取的数据。而是, 可以由 错误检测组件 440 拦截和检测这些错误, 然后将错误信息提供给存储器控制器 435, 如上所 述。随后, 存储器控制器 435 可以确定是否应该停用存储器 455 的特定部分, 其中可以例如 在硬件部分 490 内, 在无处理单元 410 参与的情况下进行这种确定。 此外, 存储器控制器 435 可以至少部分地基于表示非易失性可离散寻址的存储器 430 中存储的信息的信号, 来确定 是否从 / 向主或备用存储器读取 / 写入。再次, 可以在硬件部分 490 内, 在无处理单元 410 参与的情况下进行这种确定。因此, 如上所述, 处理器不必承担例如在处理读取 / 写入指令 时重新组织和 / 或利用存储器映射进行工作的软件处理。当然, 这种处理仅仅是示例, 本发 明要保护的主题不限于此。
     图 5 是根据实施例的存储器读取 / 写入处理 500 的流程图。在方框 505, 例如可 以由系统应用发起对存储装置的一部分进行读取或写入的读取 / 写入处理, 该系统应用提 供一个或多个读取 / 写入地址, 来分别标识要读取或写入所存储数据的一个或多个存储位 置。在方框 510, 可以将一个或多个读取 / 写入地址提供给例如内容可寻找存储器 (CAM), 在这种情况下, 可以搜索与所提供的读取 / 写入地址相对应的可能的重映射地址。在一种 实施方式中, CAM 可以包括例如 PCM 等非易失性可离散寻址的存储器。这种 CAM 可以存储 对将原始地址与对应的重映射地址相关联的数据库和 / 或表进行表示的数字信号。因此, 通过搜索这种 CAM, 在方框 530, 可以确定输入的原始读取 / 写入地址是否与 CAM 中存储器 的对应的重映射地址相关联。如果不是 ( 其中, 对于与特定的读取 / 写入地址相关联的重 映射地址的搜索返回了空结果 ), 则读取 / 写入处理 500 可以前进至方框 540, 在此可以输 出原始读取 / 写入地址。因此, 在方框 550, 可以使用该原始读取 / 写入地址来从或向存储 装置读取或写入。随后, 在方框 560, 从或向存储装置的原始读取 / 写入地址读取或写入的 数据可以提供给错误校验硬件和 / 或软件, 例如 ECC 解码器和 / 或其他此类错误校正技术。
     另一方面, 如果在方块 530 确定输入的原始读取 / 写入地址具有对应的重映射地 址, 则读取 / 写入处理 500 可以前进至方框 545, 在此可以传输对应于特定的原始读取 / 写 入地址的重映射地址。因此, 在方框 555, 可以使用重映射的读取 / 写入地址来从或向存储 装置读取或写入。 在一种实施方式中, 如果利用重映射地址, 则可以读取或写入存储装置的 备用部分, 但是这种限定仅仅是示例。 随后, 在方框 560, 从或向存储装置的重映射读取 / 写入地址读取或写入的数据可以提供给错误校验硬件和 / 或软件, 例如 ECC 解码器和 / 或其 他此类错误校正技术。当然, 这种存储器读取 / 写入处理的细节仅仅是示例, 本发明要保护 的主题不限于此。
     图 6 是根据实施例的存储器读取处理 600 的流程图。在方框 605, 例如可以由系 统应用发起对存储装置的一部分中存储的信息进行表示的信号进行读取的读取处理, 该系 统应用提供一个或多个读取地址, 来分别标识要读取表示数据的所存储的信号的一个或多 个存储位置。例如对读取的数据进行奇偶校验的 ECC 硬件和 / 或软件可以用于校验和 / 或校正读取的数据中的错误。随后, 如在方框 610, 将初始读取的数据与校正后的读取数据 相比较, 以确定存储器读取处理中已发生的错误数目。该错误数目可以表达成比特错误率 (BER), 这可以包括例如错误比特的数目与读取的比特的总数目之比。 在方框 620, 从存储装 置的一部分读取而造成的 BER 或错误数目可以与错误阈值相比较, 该错误阈值可以包括表 示可接受的最大 BER 或可接受的最大错误数目的值, 例如, 超出该值的额外错误可能无法 被成功校正。该错误阈值可以包括表示对例如图 1 所示的存储装置 100 等特定存储装置而 言可接受的错误的 BER 或错误数目的实质性上限的数目。在该错误阈值处或以下, ECC 硬 件和 / 或软件能够校正读取错误。但是在该错误阈值以上, 可能无法校正至少一些读取错 误的可能性相对较高。 在方框 630, 至少部分地基于从存储器的一部分的读取是否造成过多错误, 来决定 是否停用该存储器部分。如果错误数目处于或在错误阈值以下, 则读取处理 600 可以前进 至方框 640, 在此, 例如可以向请求所读取的数据的应用提供所读取的数据。另一方面, 如 果该错误数目在错误阈值以上, 则读取处理 600 可以前进至方框 650, 在此, 例如, 处理可以 开始停用这种导致过多错误的存储器部分。在特定实施方式中, 可以将这种易出错的存储 器部分中初始存储的数据移动到已知是工作的和 / 或状态良好的另一存储器部分。这种新 的存储器部分可以包括例如图 1 所示的备用存储器 120 等备用存储器的一部分。在方框 660, 可以将标识数据的原始存储位置的存储地址或多个存储地址重映射为标识数据迁移 至的新的存储器部分。在一种实施方式中, 重映射可以包括 : 分配新地址, 以经由例如矢量 与原始地址相对应, 以便可以将对原始地址的调用重定向至指定了被迁移数据的位置的新 地址。然后, 在方框 670, 可以将关于这种重映射地址的信息提供给 CAM, 以更新 CAM 中存储 的重映射信息, 其中如下详细描述的, 这种信息可以存储为矢量重映射表。 在方框 680, 响应 于将一个或多个重映射地址提供给 CAM, 也可以将更新后的信息提供给诸如 PCM 等非易失 性可离散寻址的存储器。例如, 存储器控制器可以将表示关于存储装置的重映射信息的数 字信号提供给 CAM, 其中, 如果更新了 CAM 中存储的重映射信息, 则该存储器控制器可以将 CAM 中存储的重映射信息的至少一部分拷贝到非易失性可离散寻址的存储器中。在一种实 施方式中, 可以在运行中, 例如在由处理器发起的读取 / 写入处理等运行时间处理期间, 将 这种更新后的信息提供给非易失性可离散寻址的存储器。在另一实施方式中, 可以由系统 执行初始化处理, 包括对存储装置的易出错部分进行扫描。
     在一种特定实施方式中, 如下进一步详细描述的, 可以利用 CAM 中存储的重映射 信息和 / 或其他内容, 周期性地更新 PCM 或其他非易失性可离散寻址的存储器。在对存储 器的易出错部分进行重映射之后, 读取处理 600 可以前进至方框 640, 其中例如可以将所读 取的数据提供给请求所读取的数据的应用。 当然, 这种存储器读取处理的细节仅仅是示例,
     本发明要保护的主题不限于此。
     图 7 是根据实施例的矢量重映射表 700 的示意图。 在其他实施方式中, 表 700 中包 括的信息不需要以表的形式格式化 ; 例如, 这种信息可以包括阵列或用于组织这种信息的 其他方式。这种信息以及关于该信息的组织, 可以在例如 PCM 等非易失性可离散寻址的存 储器中存储为表示这种信息的数字信号。 栏 710 可以包括原始地址 740 的列表, 例如 addr1, addr2, addr3 等 ; 状态栏 720 可以包括与栏 710 中列出的对应原始地址是否已经重映射有 关的信息 ; 以及栏 730 可以包括对应于栏 710 中列出的原始地址 740 的重映射地址 750 的 列表, 例如 addr1’ , addr2’ , addr3’ 等。
     在一种实施方式中, 原始地址 740 可以包括应用和 / 或系统发出的读取 / 写入请 求中包括的一个或多个地址, 该应用和 / 或系统询问存储装置 100 中在该一个或多个地址 处存储的信息。状态栏 720 可以包括描述了原始地址 740 是否已被重映射的元数据。如果 已发生了这种重映射, 则栏 730 可以包括对应于原始地址 740 的重映射地址 750。 为通过根 据图 1 的示例来示出, addr1, addr5, addr7 和 addr8 已经被分别重映射至 addr1’ , addr5’ , addr7’ 和 addr8’ , 而 addr2, addr3, addr4 和 addr6 还未被重映射。这里, 还未被重映射的 原始地址不具有栏 730 中对应的重映射地址。在另一实施方式中, 因为重映射地址 750 的 存在可能足以指示例如对于特定原始地址 740 是否已发生了重映射, 所以表 700 不需要包 括状态栏 720。当然, 这种矢量重映射表和存储重映射信息的其他格式的细节仅仅是示例, 本发明要保护的主题不限于此。 图 8 是根据实施例的存储系统 800 的框图。控制器 810 可以配置为接收指示了读 取请求 805 的一个或多个信号, 该读取请求 805 包括指定了存储装置 825 中要读取数据的 位置的地址。存储装置 825 可以包括主存储器 820 和备用存储器 830, 例如如上所述的。伴 随读取请求输入的地址可以途经通过 CAM 815, 在此将地址与 CAM 815 中存储的内容相比 较, CAM 815 可以包括与原始地址相关联的重映射地址。在一个特定实施方式中, 进行重映 射处理, 而不需要在系统级由用户生成的特定指令和 / 或信号, 以使伴随读取请求输入的 地址可以始终包括原始地址。仅仅在 CAM 搜索之后, 就可以将该地址与其关联的重映射地 址相关联。换言之, CAM 815 可以提供从原始地址空间到重映射地址空间的转换。这样, 控 制器 810 可以确定读取请求 805 是否包含已被重映射的地址。根据该确定, 控制器 810 可 以将读取请求 805 定向至主存储器 820 或备用存储器 830, 以读取数据。例如, 如果读取请 求 805 的地址还未被重映射, 则控制器 810 可以将读取请求转发给主存储器 820, 而如果该 地址已被重映射, 则控制器 810 可以修改读取请求 805, 以包括可以定向至备用存储器 830 的重映射地址。随后, 主存储器 820 或备用存储器 830 可以将读取的数据 835 提供给错误 检测块 840, 错误检测块 840 可以包括例如错误计数器和 / 或 ECC 解码器。在一个实施例 中, 可以将包括 ECC 解码器的错误检测块 840 放置在存储装置 825 的晶元元件中。在另一 实施例中, 可以在系统级, 例如在应用中, 提供包括 ECC 解码器的错误检测块 840。 错误检测 块 840 可以检测和 / 或校正读取数据 835 中存在的任何错误, 并可以将检测到的错误表达 成 BER 或比特错误数目。因此, 错误检测块 840 可以将校正后的读取数据 845 提供给例如 应用和 / 或主机系统等引入读取请求 805 的实体。错误检测块 840 也可以向比较引擎 850 提供与读取数据 835 中存在的错误的数目有关的信息。在错误检测块 840 包括放置在存储 装置 825 的晶元元件中的 ECC 解码器的情况下, 这种错误信息对于系统级的比较引擎应用
     而言是可访问的。在一种实施方式中, 例如, ECC 解码器可以包括比较引擎 850 进行访问而 可用的错误信息寄存器, 比较引擎 850 可以将检测到的错误的数目与错误阈值比较。
     如上所述, 该错误阈值可以包括对可接受的 BER 或错误数目的限制。 比较引擎 850 可以将该比较的结果 860 提供给控制器 810。 至少部分地基于该比较结果, 控制器 810 可以 确定是否停用存储装置 825 的特定部分。如果该比较指示存储装置 825 的特定部分在例如 读取处理期间已造成了过量的比特错误, 则控制器 810 可以发起停用存储器的易出错部分 的处理。这种停用处理可以包括 : 将存储器的被停用部分中存储的数据迁移至存储器的另 一部分。例如, 可以将表示数据的数字信号从主存储器 820 的特定部分中移动到存储在备 用存储器 830 中。因此, 控制器 810 可以将标识存储器的被停用部分的地址修改为标识要 包含所迁移数据的存储器的新部分的地址。然后, 这种修改后的重映射地址可以写入 CAM 815, 在此如上所述, 可以将该地址与原始地址相关联。 例如, 这种存储器停用处理可以是相 对于引入读取请求 805 的应用和 / 或主机系统而无缝进行的。在一种实施方式中, 可以时 常地、 非经常地、 周期性地、 以及 / 或者在每次以新的重映射信息更新 CAM 815 时, 更新例如 PCM 等非易失性可离散寻址的存储器 818。在一个实施例中, 可以在运行中, 例如在由读取 请求 805 发起的读取处理等运行时间处理期间, 更新非易失性可离散寻址的存储器 818。 在 实质上针对 CAM 815 的每次更新来更新非易失性可离散寻址的存储器 818 的情况下, 非易 失性可离散寻址的存储器和 CAM 两者可以是实质上彼此同步的。即, 每个这种存储器可以 包含实质上类似的重映射信息。这种同步性在如下期间非常有用 : 在存储系统 800 的电能 供应中断, 其中易失性的 CAM 815 会丢失重映射信息, 而非易失性可离散寻址的存储器 818 可以保留该信息。 当然, 存储系统的这种实施方式仅仅是示例, 本发明要保护的主题不限于 此。
     图 9 是计算系统 900 的示例实施例的示意图, 计算系统 900 包括存储装置 910, 存 储装置 910 可以划分成主部分和备用部分, 例如如上所述的。计算装置 904 可以代表可配 置为管理存储装置 910 的任何设备、 设备和 / 或机器。存储装置 910 可以包括存储器控制 器 915 和存储器 922。作为示例但非限制性地, 计算装置 904 可以包括 : 一个或多个计算设 备和 / 或平台, 例如台式计算机、 膝上型计算机、 工作站、 服务器设备等 ; 一个或多个个人计 算或通信装置或设备, 例如个人数字助理、 移动通信设备等 ; 计算系统和 / 或关联的服务提 供商功能装置, 例如数据库或数据存储服务提供商 / 系统 ; 以及 / 或者其任意组合。
     应该认识到, 可以通过使用或包括硬件、 固件、 软件或其任意组合, 来实现系统 900 中所示的多种装置的全部或一部分、 以及这里进一步描述的处理和方法。 因此, 作为示例但 非限制性地, 计算装置 904 可以包括 : 至少一个处理单元 920, 通过总线 940 操作性地耦合 至存储器 922 ; 以及主机或存储器控制器 915。处理单元 920 代表可配置为执行数据计算 过程或处理的至少一部分的一个或多个电路。作为示例但非限制性地, 处理单元 920 可以 包括一个或多个处理器、 控制器、 微处理器、 微控制器、 专用集成电路、 数字信号处理器、 可 编程逻辑器件、 现场可编程门阵列等、 以及其任意组合。处理单元 920 可以与存储器控制器 915 通信, 以处理例如读取、 写入和 / 或擦除等存储器相关操作, 以及如上所述的存储器分 区处理。处理单元 920 可以包括配置为与存储器控制器 915 通信的操作系统。这种操作系 统例如可以生成要经由总线 940 发送至存储器控制器 915 的命令。这种命令可以包括例如 如下指令 : 对存储器 922 的至少一部分进行分区 ; 将一个或多个属性与特定部分相关联 ; 以及至少部分地基于要编程和存储的数据的类型对特定分区进行编程。
     存储器 922 代表任何数据存储机构。存储器 922 可以包括例如主存储器 924 和 / 或次存储器 926。在特定实施例中, 如上所述, 存储器 922 可以包括至少部分地基于存储器 的一个或多个属性和 / 或存储器管理处理而被分区的存储器。主存储器 924 可以包括例如 随机存取存储器、 只读存储器等。虽然该示例中示出了主存储器 924 是与处理单元 920 分 离的, 但是应该理解, 主存储器 924 的全部或部分可以提供在处理单元 920 内或者与处理单 元 920 协同定位 / 耦合。
     次存储器 926 可以包括例如与主存储器相同或类似类型的存储器、 以及 / 或者一 个或多个数据存储装置或系统, 例如盘驱动、 光盘驱动、 磁带驱动、 固态存储器驱动等。 在特 定实施方式中, 次存储器 926 可以是操作性地能容纳计算机可读介质 928, 或者可配置为与 计算机可读介质 928 耦合。计算机可读介质 928 可以包括例如能够携带针对系统 900 中一 个或多个装置的数据、 代码和 / 或指令的任何介质、 和 / 或使得这些数据、 代码和 / 或指令 可访问的任何介质。
     计算装置 904 可以包括例如输入 / 输出 932, 输入 / 输出 932 可以代表可配置为接 受或引入人类和 / 或机器输入的一个或多个装置或特征、 可配置为传递或提供人类和 / 或 机器输出的一个或多个装置或特征。作为示例但非限制性地, 输入 / 输出设备 932 可以包 括操作性配置的显示器、 扬声器、 键盘、 鼠标、 轨迹球、 触摸屏、 数据端口等。
     在以上详细描述中, 给出了多种特定细节, 以提供对本发明要保护的主题的全面 理解。 但是, 本领域技术人员会理解, 可以在不需要这些特定细节的情况下实施本发明要保 护的主题。在其他情况下, 没有具体描述普通技术人员已知的方法、 装置或系统, 以避免使 本发明要保护的主题不清楚。
     以上详细描述的一些部分是从存储在专用设备或专用计算装置或平台的存储器 内、 对二进制数字信号的操作的算法或符号化表示方面来呈现的。在本特定说明书的上下 文中, 属于专用设备等包括只要编程为执行根据来自程序软件的指令的特定操作的通用计 算机。 算法描述或符号化表示是信号处理或相关领域普通技术人员用来将其工作的实质内 容传递给其他技术人员的技术的示例。这里以及一般而言, 算法被认为是引导至所需结果 的操作或类似信号处理的前后一致的序列。在该情况下, 操作或处理包括对物理量的物理 操作。典型地, 虽然不是必需的, 这种量可以采用能够被存储、 传送、 组合、 比较或处理的电 或磁信号的形式。已经多次证明了, 主要由于普遍使用, 很方便将此类信号引用为比特、 数 据、 值、 元素、 符号、 字符、 术语、 号码、 数字等。但是, 应该理解, 这些或类似术语全部要与合 适的物理量关联, 并仅仅是方便的标签。除非专门声明, 从以下论述中明显可见, 在本说明 书描述中, 使用 “处理” 、 “计算” 、 “运算” 、 “确定” 等术语是指例如专用计算机或类似专用电 子计算设备的专用设备的动作或处理。在一个示例中, 这种专用计算机或类似专用电子计 算设备可以包括利用执行一个或多个特定功能的指令编程的通用计算机。因此, 在本说明 书的上下文中, 专用计算机或类似专用电子计算设备能够操作或变换典型地以电或磁物理 量表示的信号, 这些电或磁物理量在该专用计算机或类似专用电子计算设备的存储器、 寄 存器、 或其他信息存储装置、 传输装置或显示装置内。
     这里使用的属于 “和” 、 “和 / 或” 和 “或” 可以包括多种含义, 这至少部分地取决于 其所应用的上下文。典型地, 如果用于关联列表, 例如 A、 B 或 C, 则 “和 / 或” 和 “或” 表示A、 B 和 C, 这里是包含性含义, 以及 A、 B 或 C, 这里是排他性含义。本说明书中对 “一个实施 例” 或 “实施例” 的引述意味着, 结合该实施例描述的具体特征、 结构或特点包括在所要求保 护的主题的至少一个实施例中。因此, 在本说明书中多处出现的短语 “在一个实施例中” 或 “在实施例中” 不一定全部是指同一实施例。此外, 具体特征、 结构或特点可以结合在一个 或更多实施例中。 这里描述的实施例可以包括使用数字信号进行操作的机器、 装置、 引擎或 设备。 这种信号可以包括电信号、 光信号、 电磁信号或在位置之间提供信息的任何形式的能 量。
     虽然示出并描述了当前认为的示例实施例, 但是本领域技术人员会理解, 在不背 离本发明要保护的主题的前提下, 可以进行多种其他修改并替换等同物。 此外, 在不背离这 里所述的中心思想的前提下, 可以进行多种修改来使特定情况适应本发明要保护的主题的 教义。 因此, 本发明要保护的主题不限于公开的特定实施例, 而是也可以包括在所附权利要 求及其等同物范围内的所有实施例。

存储存储器重映射信息的非易失性存储器.pdf_第1页
第1页 / 共24页
存储存储器重映射信息的非易失性存储器.pdf_第2页
第2页 / 共24页
存储存储器重映射信息的非易失性存储器.pdf_第3页
第3页 / 共24页
点击查看更多>>
资源描述

《存储存储器重映射信息的非易失性存储器.pdf》由会员分享,可在线阅读,更多相关《存储存储器重映射信息的非易失性存储器.pdf(24页珍藏版)》请在专利查询网上搜索。

1、10申请公布号CN101937374A43申请公布日20110105CN101937374ACN101937374A21申请号201010219745922申请日2010062912/494,99420090630USG06F11/1020060171申请人恒忆有限责任公司地址瑞士罗尔72发明人吉尔吉拉特比林斯蒂芬鲍尔斯马克林万德塞缪尔戴维波斯特74专利代理机构中科专利商标代理有限责任公司11021代理人杨静54发明名称存储存储器重映射信息的非易失性存储器57摘要一种系统,包括控制器,将表示关于存储装置的重映射信息的数字信号存储到内容可寻址存储器CAM,其中所述控制器适于如果所述CAM中存储的。

2、所述重映射信息被更新,则将所述CAM中存储的所述重映射信息的至少一部分存储到非易失性可离散寻址的存储器中。30优先权数据51INTCL19中华人民共和国国家知识产权局12发明专利申请权利要求书2页说明书12页附图9页CN101937375A1/2页21一种系统,包括控制器,将表示关于存储装置的重映射信息的数字信号存储到内容可寻址存储器CAM,其中所述控制器适于如果所述CAM中存储的所述重映射信息被更新,则将所述CAM中存储的所述重映射信息的至少一部分存储到非易失性可离散寻址的存储器中。2根据权利要求1所述的系统,还包括纠错编码ECC解码器,接收从所述存储装置读取的表示数据的数字信号,并确定与所。

3、读取的表示所述数据的信号相关联的比特错误率和/或比特错误数目,其中所述控制器适于至少部分地基于所述比特错误率和/或所述比特错误数目是否达到或超过错误阈值,存储所述重映射信息。3根据权利要求1所述的系统,其中所述非易失性可离散寻址的存储器包括相变存储器PCM。4根据权利要求1所述的系统,其中所述重映射信息包括一个或多个重映射地址表。5根据权利要求1所述的系统,其中所述非易失性可离散寻址的存储器能够在定向至所述存储装置的读取/写入处理期间,在运行中以新的重映射信息来更新。6根据权利要求1所述的系统,其中所述CAM以及所述非易失性可离散寻址的存储器实质上彼此同步。7根据权利要求1所述的系统,其中所述。

4、非易失性可离散寻址的存储器包括第二CAM。8一种方法,包括确定与从存储装置读取的表示数据的数字信号相关联的比特错误率和/或比特错误数目;以及在非易失性可离散寻址的存储器中存储表示关于所述存储装置的重映射信息的数字信号,其中所述重映射信息至少部分地基于所述比特错误率和/或所述比特错误数目是否达到或超过错误阈值。9根据权利要求8所述的方法,其中所述非易失性可离散寻址的存储器包括相变存储器PCM。10根据权利要求8所述的方法,其中所述重映射信息包括一个或多个重映射地址表。11根据权利要求8所述的方法,其中所述非易失性可离散寻址的存储器能够在定向至所述存储装置的读取/写入处理期间,在运行中以新的重映射。

5、信息来更新。12根据权利要求8所述的方法,其中所述非易失性可离散寻址的存储器包括内容可寻址存储器CAM。13根据权利要求10所述的方法,其中所述存储装置包括主存储器部分和备用存储器部分,所述重映射地址对应于所述备用存储器部分中的存储位置。14根据权利要求8所述的方法,其中所述存储还包括将所述重映射信息写入所述非易失性可离散寻址的存储器的一部分,所述一部分的大小实质上与所述重映射信息的大小相同。15一种系统,包括主机,从/向存储装置读取/写入,并执行一个或多个应用;纠错编码ECC解码器,接收从所述存储装置读取的表示数据的数字信号,并确定与所权利要求书CN101937374ACN101937375。

6、A2/2页3读取的表示所述数据的信号相关联的比特错误率和/或比特错误数目;以及重映射控制器,至少部分地基于所述比特错误率和/或所述比特错误数目是否达到或超过错误阈值,将表示所述存储装置的重映射地址的数字信号存储到内容可寻址存储器CAM,其中所述CAM包括相变存储器PCM。16根据权利要求15所述的系统,其中所述CAM适于接收表示读取地址的数字信号并发送表示信号的数字信号,所述信号至少部分地响应于所述读取地址是否对应于所述CAM中存储的所述重映射地址。17根据权利要求16所述的系统,还包括选择部分,选择所述读取地址或所述重映射地址,以用作要从所述存储装置进行读取的地址,其中,所述选择至少部分地基。

7、于所述信号。18根据权利要求15所述的系统,其中所述存储装置包括主存储器部分和备用存储器部分,所述重映射地址对应于所述备用存储器部分中的存储位置。19根据权利要求18所述的系统,其中所述存储装置还包括所述ECC解码器和相变存储器部分。20根据权利要求15所述的系统,其中所述比特错误率和/或所述比特错误数目至少部分地响应于所述存储器的物理劣化。权利要求书CN101937374ACN101937375A1/12页4存储存储器重映射信息的非易失性存储器技术领域0001所公开的本发明主题涉及对存储装置的重映射。背景技术0002存储装置用于多种电子设备,例如计算机、蜂窝电话、PDA、数据记录器和导航设备。

8、这里只给出一些示例。在这种电子设备中,可以采用多种类型的非易失性存储装置,例如NAND或NOR闪存、SRAM、DRAM和相变存储器这里只给出一些示例。一般而言,可以使用写入或编程处理在这种存储装置中存储信息,并可以使用读取处理来获取存储的信息。0003这种非易失性存储装置可以包括存储单元,存储单元随时间慢慢劣化,导致在对这种存储单元进行存取时可能发生读取和/或写入错误的可能性增大。错误也可能由制造缺陷和/或边际存储装置构造这里只给出一些示例造成。虽然随后可以在存储装置内校正此类错误,但是随着例如错误数目的增长,这种错误校正可能变得很困难或不可能了。发明内容0004为了解决上述技术问题,例如,本。

9、发明提供了一种系统,包括控制器,将表示关于存储装置的重映射信息的数字信号存储到内容可寻址存储器CAM,其中所述控制器适于如果所述CAM中存储的所述重映射信息被更新,则将所述CAM中存储的所述重映射信息的至少一部分存储到非易失性可离散寻址的存储器中。附图说明0005参照以下附图,描述非限制性和非穷尽实施例,在附图中,相同参考数字指代相同部分,除非有特别说明。0006图1是根据实施例的存储器配置的示意图;0007图2是根据实施例的存储器读取处理的流程图;0008图3是根据另一实施例的存储器读取处理的流程图;0009图4是根据实施例的计算系统和存储装置的示意框图;0010图5是根据实施例的存储器读取。

10、处理的流程图;0011图6是根据另一实施例的存储器读取处理的流程图;0012图7是根据实施例的矢量重映射表的示意图;0013图8是根据实施例的存储系统的示意框图;0014图9是根据实施例的计算系统和存储装置的示意框图。具体实施方式0015在本说明书中,对“一个实施例”或“实施例”的引述意味着,结合该实施例描述的具体特征、结构或特点包括在所要求保护的主题的至少一个实施例中。因此,在本说明书中多处出现的短语“在一个实施例中”或“在实施例中”不一定全部是指同一实施例。此外,说明书CN101937374ACN101937375A2/12页5具体特征、结构或特点可以结合在一个或更多实施例中。0016在实。

11、施例中,关于存储装置的重映射信息可以保持在非易失性可离散寻址的存储器中。这种重映射信息可以包括重映射矢量,重映射矢量提供重映射地址,以作为例如针对存储装置的读取/写入请求的一部分,替代由处理器提供的地址。这里,可离散寻址的存储器可以包括存储单元,例如,这种存储单元不需要每次都成块和/或成扇区地写入,而是可以单独地被寻址或者以相对较小的组来成组地被寻址。例如,向NOR闪存类型的存储器写入数据可以包括向存储单元的较大块写入,即使要写入的数据只需要一个或两个存储单元大小的存储空间。在另一示例中,向相变存储器PCM写入诸如重映射信息等数据,这可以包括只向与要写入的数据的存储大小基本上匹配的多个存储单元。

12、写入。0017在这种非易失性可离散寻址的存储器中保持重映射信息,这可以提供对要重映射的存储器的特定区域的粒度更细的控制。例如,这种非易失性可离散寻址的存储器可以允许离散寻址,以在存储空间的相对较小的部分中存储重映射矢量。相反,不可离散寻址的存储器可以使用块和/或扇区寻址,从而仅对单个重映射矢量的存储可能占用存储装置的相对较大部分。此外,使用块和/或扇区寻址的存储器可以包括擦除处理,以为后续的写入处理准备存储块和/或扇区,这造成了相比于可离散寻址的存储器,需要更大量的写入时间。因此,在非易失性可离散寻址的存储器中存储和保持重映射信息可以提供提高存储装置的存储空间利用率以及减少写入处理所需的时间的。

13、途径。在一种实施方式中,在非易失性可离散寻址的存储器中保持重映射信息可以允许使用这种重映射信息所相关的易失性存储装置,这是因为这种非易失性存储器即使在下电POWERDOWN期间也可以存储重映射信息。因此,在非易失性可离散寻址的存储器中存储和保持重映射信息可以允许以更大的灵活性来选择存储器类型,例如NAND或NOR闪存、SRAM、DRAM和PCM这里只给出一些示例。0018在一种实施方式中,重映射信息所相关的存储装置可以在物理上包括非易失性可离散寻址的存储器,以便单个晶元DIE或集成电路芯片包括存储装置和非易失性可离散寻址的存储器两者。但是,在这种实施方式中,存储装置可以与非易失性可离散寻址的存。

14、储器不同,以便可以通过处理器和/或存储器控制器分离地访问该存储装置和非易失性可离散寻址的存储器。例如,用于存储关于存储装置的重映射信息的非易失性可离散寻址的存储器可以驻留在存储装置上,但是依然与这种存储装置不同。继续参照该示例,这种存储装置可以包括具有多个存储器晶元的存储模块可以经由单个处理器和/或存储器控制器访问存储器晶元,可以通过分离的单个处理器和/或存储器控制器访问非易失性可离散寻址的存储器。当然,在非易失性可离散寻址的存储器上保持重映射信息的这些细节和优点仅仅是示例,本发明要求保护的主题不限于此。0019例如,相比于在存储装置内保持重映射信息,在非易失性可离散寻址的存储器上存储和保持关。

15、于存储装置的重映射信息也可以减少等待时间以及/或者提高对可用存储器容量的利用。在一种实施方式中,可以在运行中ONTHEFLY生成重映射信息,例如在由处理器发起的读取/写入处理等运行时间处理期间,其中对从存储装置读取的数据进行错误校验,如下所述。在另一实施方式中,可以由系统执行初始化处理,以包括对存储装置的易出错部分进行扫描。再次,在非易失性可离散寻址的存储器上保持重映射信息的这些细节和优点仅仅是示例,本发明要求保护的主题不限于此。0020在实施例中,存储装置可以包括存储单元,存储单元随时间慢慢劣化,导致在对这说明书CN101937374ACN101937375A3/12页6种存储装置进行例如读。

16、取时可能发生一个或多个错误的可能性增大。存储装置也可以包括由其制造导致的缺陷和/或边际功能存储单元。例如,可以使用纠错码ECC或其他此类技术,在计算系统内的若干区域内纠正这种错误。从系统角度来看,可以确定是否要继续使用这种易出错的单元。如下要详细说明的,这种确定可以至少部分地基于此类错误的数目与错误阈值的比较,其中错误阈值可以在例如存储装置的设计阶段定义。在一种实施方式中,可以在特定存储单元展示出过量错误之前,中断对这些单元的使用。换言之,如果易出错的存储单元产生的错误数目接近错误阈值,则可以中断对这种存储单元的使用。例如,为了确定可以中断对存储单元的使用,不需要达到该阈值。因此,观察错误的数。

17、目接近错误阈值,这可以是预测特定的存储单元可能很快产生太多错误的途径,从而可以例如在易出错的存储单元实际上开始临界地发生故障之前,停止对这些易出错存储单元的使用。如果要中断对特定的存储单元的使用,则可以按照保持存储装置总容量的方式来选择替代的存储单元。0021因此,在一个实施例中,保持存储装置的尺寸容量的处理包括将易出错的存储位置重映射到正常工作的存储位置,而不损失总的系统存储空间例如,存储装置容量。这种重映射可以至少部分地基于与因从易出错的存储位置进行读取而发生错误的量和/或频率有关的信息。这里,存储位置是指例如可以使用标识存储位置和/或部分的一个或多个地址,经由读取和/或写入处理来访问的存。

18、储装置的一部分。如下要详细说明的,例如,ECC引擎可以用于确定与读取存储器特定部分相关联的比特错误率和/或比特错误数目。随后,可以将比特错误率和/或比特错误数目与错误阈值相比较,例如该错误阈值可以包括到可接受错误数目的实质性限制。根据这种比较的结果,可以决定是否停用RETIRE产生错误的存储器的特定部分,例如中断对其的使用。0022在特定实施例中,停用存储装置的一部分的处理可以包括将存储在存储装置的要停用的一部分中的、代表数据的数字信号移动到存储装置的另一部分。在一种实施方式中,可以将从存储装置的停用部分迁出的代表数据的数字信号移动到存储装置的备用部分。例如,这种存储器备用部分可以包括存储装置。

19、中初始没有识别或考虑为存储装置的整个容量的一部分的物理位置,如下要详细说明的。停用存储装置的一部分的处理也可以包括将存储装置的要停用部分的地址重映射成对应于存储装置的新的备用部分的地址。这种重映射的地址可以例如如上所述存储在非易失性可离散寻址的存储器中。当然,这些处理仅仅是示例,本发明要保护的主题不限于此。0023在一个实施例中,例如上述处理可以涉及包括器件的存储装置。因此,随着PCM老化,由PCM的部分产生的比特错误率和/或比特错误数目可能增大。在一定程度上,可以使用例如ECC引擎和/或其他纠错技术来纠正这些错误。但是,错误数目可能增大,超出了这些纠错技术的能力。因此,希望在指示这种存储部分。

20、已经或正开始产生过量错误的趋势时,就停用这种存储部分。0024例如上述实施例可能允许对存储装置的成功使用涉及到相对不可靠的技术。例如,使用本文描述的实施例,可以利用先前认为是不可用的晶元。此外,这些实施例可能将存储装置的寿命延长到其大多数存储单元的寿命,而不是其相对少量的存储单元的寿命。0025图1是根据实施例的存储器配置的示意图。存储装置100可以划分成主存储器110和备用存储器120。存储装置100可以包括例如NAND或NOR闪存、SRAM、DRAM和PCM这里说明书CN101937374ACN101937375A4/12页7只给出一些示例。存储装置100包括具有这种主和备用存储部分以及/。

21、或者一个或多个其他存储部分的用户可寻址存储空间,这些存储部分可以是或不是彼此邻接的,可以驻留或不驻留在单个装置中。主存储器110和备用存储器120可以包括可独立寻址的空间,这些空间可通过例如读取、写入和/或擦除处理来访问。0026根据实施例,存储装置100的一个或多个部分可以存储表示由存储装置100的特定状态表达的数据和/或信息的信号。例如,可以通过影响或改变存储装置100的一部分的状态,将数据和/或信息表示为二进制信息例如,1和0,来在存储装置100的该部分中“存储”表示数据和/或信息的电子信号。这样,在特定实施方式中,改变存储器的一部分的状态来存储表示数据和/或信息的信号,这构成了将存储装。

22、置100变换到不同的状态或事物。0027存储装置100可以配置为初始包括与存储装置100的全部可用容量对应的主存储器110。这种初始配置可以额外地包括备用存储器120,在确定存储装置容量时,不需要包括备用存储器120。但是,如果主存储器的部分变得不可用或例如在读取/写入处理期间造成过量的错误,则可以使用备用存储器120来替代主存储器110的部分。当然,这种存储器配置的细节仅仅是示例,本发明要保护的主题不限于此。0028图2是根据实施例的存储器读取/写入处理200的流程图。在方块220,例如可以由处理器执行的系统应用发起对存储装置的一部分进行读取或写入的读取/写入处理,该系统应用提供一个或多个读。

23、取/写入地址,来分别标识要读取或写入所存储数据的一个或多个存储位置。开始于方框230,这种读取/写入地址可以将数据读取/写入处理沿着先前选择的数据路径定向,该数据路径是至少部分地基于读取/写入地址是否对应于已被停用的存储位置而选择的。在本示例中,存储装置可以包括主存储器部分和备用存储器部分,例如图1所示的存储装置100。在特定实施例中,备用存储器部分可以用于替代被停用的主存储器部分。在这种存储位置还未停用的情况下,在方框240,数据路径可以将数据读取/写入处理定向至主存储器部分中对应于由处理器传输的地址的位置。这种定向可以由适当地切换的硬件切换组件来执行,例如由复用器来执行。例如,可以向硬件切。

24、换组件施加信号,以选择引向至对应于由处理器传输的地址的主存储器部分的数据路径。由硬件切换组件选择的其他数据路径可以包括引向至存储装置的不同部分例如备用存储器部分的各个单独数据路径。0029由此,在方框250,由处理器传输的读取/写入地址可以用于从存储装置的主存储器部分读取或向其写入。随后,在方框260,从存储装置的读取地址读取的数据可以被提供给错误校验硬件和/或软件,例如ECC解码器和/或其他此类纠错技术。在向存储装置写入数据的情况下,可以执行后续的读取处理来验证成功的写入操作该读取的数据可以提供给错误校验硬件和/或软件,例如ECC解码器和/或其他此类纠错技术。0030在已经停用了存储位置的情。

25、况下,在方框245,数据路径可以将数据读取/写入处理定向至备用存储器部分中的位置,而不是对应于由处理器传输的地址的存储位置。这种路径定向可以由适当地切换的硬件切换组件来执行,例如由复用器来执行。具体而言,可以向硬件切换组件施加信号,以选择引向至对应于由处理器传输的地址的备用存储器部分的数据路径。由硬件切换组件选择的其他数据路径可以包括引向至存储装置的不同部分例如主存储器部分和/或其他备用存储器部分的各个单独数据路径。说明书CN101937374ACN101937375A5/12页80031由此,在方框255,由处理器传输的读取/写入地址虽然原始是定向至主存储器部分的地址,但是可以重定向至存储装。

26、置的备用存储器部分。随后,在方框260,从备用存储器部分读出或向其写入的数据可以被提供给错误校验硬件和/或软件,例如ECC解码器和/或其他此类纠错技术。在向存储装置写入数据的情况下,可以执行后续的读取处理来验证成功的写入操作该读取的数据可以提供给错误校验硬件和/或软件,例如ECC解码器和/或其他此类纠错技术。当然,这种存储器读取处理的细节仅仅是示例,本发明要保护的主题不限于此。0032图3是根据实施例的存储器读取/写入处理300的流程图。在方框310,例如可以由系统应用发起对存储装置的一部分进行读取或写入的读取/写入处理,该系统应用提供一个或多个读取/写入地址,来分别标识要读取或写入所存储数据。

27、的一个或多个存储位置。例如对读取的数据进行奇偶校验的ECC硬件和/或软件可以用于校验和/或校正读取的数据中的错误。随后,如在方框320,将初始读取的数据与校正后的读取数据相比较,以确定存储器读取/写入处理中已发生的错误数目。该错误数目可以表达成比特错误率BER,这可以包括例如错误比特的数目与读取的比特的总数目之比。从存储装置的一部分读取而造成的BER或错误数目可以与错误阈值相比较,该错误阈值可以包括表示可接受的最大BER或可接受的最大错误数目的值,例如,超出该值的额外错误可能无法被成功校正。该错误阈值可以包括表示对例如图1所示的存储装置100等特定存储装置而言可校正的错误的BER或错误数目的实。

28、质性上限的数目。在该错误阈值处或以下,ECC硬件和/或软件能够校正读取错误。但是在该错误阈值以上,可能无法校正所有读取错误的可能性相对较高。0033在方框330,至少部分地基于从存储器的一部分的读取是否造成过多错误,来决定是否停用该存储器部分。如果错误数目处于或在错误阈值以下,则可以决定不停用该存储器部分,读取/写入处理300可以前进至方框335。在此,可以向硬件切换组件提供信号,以将针对读取/写入处理而传输数据的路由或路径定向至原始主存储器部分。接着,在方框340,例如,可以将读取的数据提供给应用,该应用请求将读取的数据或写入的数据写入到原始主存储器部分中。0034另一方面,如果该错误数目在。

29、错误阈值以上,则可以决定停用存储器的一部分,读取/写入处理300可以前进至方框350,在此,例如,处理可以开始停用这种导致过多错误的存储器部分。在特定实施方式中,可以通过向硬件切换组件提供信号,以将用于读取/写入处理的数据路由定向至原始主存储器部分,来再次读取存储在要停用的存储器部分中的数据。接着,在方框360,可以向硬件切换组件提供信号,以将用于后续读取/写入处理的数据路由定向至用于替代原始主存储器部分的备用存储器部分。接着,在方框340,例如,可以将读取的数据提供给应用,该应用请求将读取的数据或写入的数据写入到备用存储器部分中。当然,这种存储器读取处理的细节仅仅是示例,本发明要保护的主题不。

30、限于此。0035图4是示出了包括存储装置455的计算系统400的实施例的示意图,存储装置445可以划分成主部分450和备用部分460,例如如参照图1所描述的。计算系统400可以代表可配置为管理存储装置455的任何设备、设备和/或机器。作为示例但非限制性地,计算系统400可以包括一个或多个计算设备和/或平台,例如台式计算机、膝上型计算机、工作站、服务器设备等;一个或多个个人计算或通信装置或设备,例如个人数字助理、移动通信设备等;计算系统和/或关联的服务提供商功能装置,例如数据库或数据存储服务提供商/说明书CN101937374ACN101937375A6/12页9系统;以及/或者其任意组合。00。

31、36应该认识到,可以通过使用或包括硬件、固件、软件或其任意组合,来实现计算系统40中所示的多种装置的全部或一部分、以及这里进一步描述的处理和方法。因此,作为示例但非限制性地,计算系统400可以包括至少一个处理单元410,通过硬件切换组件470操作性地耦合至存储器455;存储器控制器435;以及错误检测和存储器停用确定组件440以下为方便起见,称为“错误检测组件”。处理单元410可以代表可配置为执行数据计算过程或处理的至少一部分的一个或多个电路。作为示例但非限制性地,处理单元410可以包括一个或多个处理器、控制器、微处理器、微控制器、专用集成电路、数字信号处理器、可编程逻辑器件、现场可编程门阵列。

32、等、以及其任意组合。处理单元410可以与存储器控制器435通信,以处理例如读取、写入和/或擦除等存储器相关操作。处理单元410可以包括配置为与存储器控制器435通信的操作系统。这种操作系统例如可以生成要经由地址输出端口415和/或数据读取/写入端口420发送至存储器控制器435的命令。这种命令可以包括例如与存储器455对应的存储地址。0037计算系统400可以包括例如输入/输出部分480,输入/输出部分480可以代表可配置为接收或引入人类和/或机器输入的一个或多个装置或特征、可配置为传递或提供人类和/或机器输出的一个或多个装置或特征。作为示例但非限制性地,输入/输出部分480可以包括操作性配置。

33、的显示器、扬声器、键盘、鼠标、轨迹球、触摸屏、数据端口等。0038存储器控制器435可以包括非易失性可离散寻址的存储器430,来保持用于经由硬件切换组件470在引向至存储器455的多个部分的多条数据路径475中进行选择的信息。在一个实施例中,可离散寻址的存储器可以包括PCM。例如,这种信息可以包括与选择特定数据路径474的特定存储器选择值相关联的存储地址的表;如果处理单元410提供地址作为读取/写入操作的一部分,则可以使用非易失性可离散寻址的存储器430来将该地址与选择至存储器的特定数据路径的特定存储器选择值相关联。这里,例如,可以进行选择,以挑选至主存储器450或备用存储器460的数据路径。。

34、如上所述,该选择可以至少部分地基于与读取/写入操作中提供的地址相关联的存储器455的位置是否已被停用。为了通过具体示例示出,处理单元410可以提供地址作为读取操作的一部分。由存储器控制器435接收该地址,然后将该地址与非易失性可离散寻址的存储器430中保持的特定的存储器选择值相关联。如下说明的,这种存储器选择值可以是至少部分地基于由错误检测组件440提供的信息而已经建立的。然后,可以将这种存储器选择值提供给硬件切换组件470,以在多条数据路径475中选择至存储器的一条数据路径。在本具体实例中,该地址对应于存储器455中先前已停用的位置。因此,寄存器430可以将该地址与如下存储器选择值相关联如果。

35、将该存储器选择值提供给硬件切换组件470,则可以选择引向至备用存储器460中的位置的数据路径。虽然图4示出了两条数据路径来代表多条数据路径475,但是应该注意,可以有任意数目的数据路径。此外,硬件切换组件470不必局限于每次选择一条数据路径。类似地,可以存在包括有至存储器455的任意部分的任意数目的数据路径的组合,其中存储器455可以包括例如封装在一起或单独封装的一个或多个存储器件。存储器455可以代表任何的数据存储机构。存储器455可以包括例如盘驱动、光盘驱动、磁带驱动、固态存储驱动等。因此,这里描述的配置仅仅是示例,本发明要保护的主题不限于此。0039如上所述,例如PCM等非易失性可离散寻。

36、址的存储器430可以至少部分地基于由说明书CN101937374ACN101937375A7/12页10错误检测组件440提供的信息,来建立和保持信息。在一个实施例中,可以将从存储器455读取的数据提供给错误检测组件440,错误检测组件440可以检查错误,以确定与读取存储器455的特定部分相关联的比特错误率和/或比特错误数目。然后,可以将该错误信息提供给存储器控制器435,存储器控制器435可以将比特错误率和/或比特错误数目与例如错误阈值相比较。可以根据该比较的结果,决定是否停用存储器的该特定部分。因此,可以将存储器的该特定部分的地址与如下存储器选择值相关联如果将该存储器选择值提供给硬件切换组。

37、件470,则可以用于选择至存储器的合适部分的数据路径。如上所述,非易失性可离散寻址的存储器430可以保持与特定的存储地址相关联的存储器选择值。0040如图4所示,计算系统400可以包括硬件部分490,该硬件部分490包括例如存储器控制器435、非易失性可离散寻址的存储器430、硬件切换组件470和/或存储器455。在特定实施例中,停用存储装置的一部分以及/或者确定是否从/向主或备用存储器读取/写入,可以包括对于可以发出读取/写入指令的处理单元410而言透明的处理。因此,处理器单元410不需要接收或处理从产生错误的存储器特定部分读取的数据。而是,可以由错误检测组件440拦截和检测这些错误,然后将。

38、错误信息提供给存储器控制器435,如上所述。随后,存储器控制器435可以确定是否应该停用存储器455的特定部分,其中可以例如在硬件部分490内,在无处理单元410参与的情况下进行这种确定。此外,存储器控制器435可以至少部分地基于表示非易失性可离散寻址的存储器430中存储的信息的信号,来确定是否从/向主或备用存储器读取/写入。再次,可以在硬件部分490内,在无处理单元410参与的情况下进行这种确定。因此,如上所述,处理器不必承担例如在处理读取/写入指令时重新组织和/或利用存储器映射进行工作的软件处理。当然,这种处理仅仅是示例,本发明要保护的主题不限于此。0041图5是根据实施例的存储器读取/写。

39、入处理500的流程图。在方框505,例如可以由系统应用发起对存储装置的一部分进行读取或写入的读取/写入处理,该系统应用提供一个或多个读取/写入地址,来分别标识要读取或写入所存储数据的一个或多个存储位置。在方框510,可以将一个或多个读取/写入地址提供给例如内容可寻找存储器CAM,在这种情况下,可以搜索与所提供的读取/写入地址相对应的可能的重映射地址。在一种实施方式中,CAM可以包括例如PCM等非易失性可离散寻址的存储器。这种CAM可以存储对将原始地址与对应的重映射地址相关联的数据库和/或表进行表示的数字信号。因此,通过搜索这种CAM,在方框530,可以确定输入的原始读取/写入地址是否与CAM中。

40、存储器的对应的重映射地址相关联。如果不是其中,对于与特定的读取/写入地址相关联的重映射地址的搜索返回了空结果,则读取/写入处理500可以前进至方框540,在此可以输出原始读取/写入地址。因此,在方框550,可以使用该原始读取/写入地址来从或向存储装置读取或写入。随后,在方框560,从或向存储装置的原始读取/写入地址读取或写入的数据可以提供给错误校验硬件和/或软件,例如ECC解码器和/或其他此类错误校正技术。0042另一方面,如果在方块530确定输入的原始读取/写入地址具有对应的重映射地址,则读取/写入处理500可以前进至方框545,在此可以传输对应于特定的原始读取/写入地址的重映射地址。因此,。

41、在方框555,可以使用重映射的读取/写入地址来从或向存储装置读取或写入。在一种实施方式中,如果利用重映射地址,则可以读取或写入存储装置的备用部分,但是这种限定仅仅是示例。随后,在方框560,从或向存储装置的重映射读取/写说明书CN101937374ACN101937375A8/12页11入地址读取或写入的数据可以提供给错误校验硬件和/或软件,例如ECC解码器和/或其他此类错误校正技术。当然,这种存储器读取/写入处理的细节仅仅是示例,本发明要保护的主题不限于此。0043图6是根据实施例的存储器读取处理600的流程图。在方框605,例如可以由系统应用发起对存储装置的一部分中存储的信息进行表示的信号。

42、进行读取的读取处理,该系统应用提供一个或多个读取地址,来分别标识要读取表示数据的所存储的信号的一个或多个存储位置。例如对读取的数据进行奇偶校验的ECC硬件和/或软件可以用于校验和/或校正读取的数据中的错误。随后,如在方框610,将初始读取的数据与校正后的读取数据相比较,以确定存储器读取处理中已发生的错误数目。该错误数目可以表达成比特错误率BER,这可以包括例如错误比特的数目与读取的比特的总数目之比。在方框620,从存储装置的一部分读取而造成的BER或错误数目可以与错误阈值相比较,该错误阈值可以包括表示可接受的最大BER或可接受的最大错误数目的值,例如,超出该值的额外错误可能无法被成功校正。该错。

43、误阈值可以包括表示对例如图1所示的存储装置100等特定存储装置而言可接受的错误的BER或错误数目的实质性上限的数目。在该错误阈值处或以下,ECC硬件和/或软件能够校正读取错误。但是在该错误阈值以上,可能无法校正至少一些读取错误的可能性相对较高。0044在方框630,至少部分地基于从存储器的一部分的读取是否造成过多错误,来决定是否停用该存储器部分。如果错误数目处于或在错误阈值以下,则读取处理600可以前进至方框640,在此,例如可以向请求所读取的数据的应用提供所读取的数据。另一方面,如果该错误数目在错误阈值以上,则读取处理600可以前进至方框650,在此,例如,处理可以开始停用这种导致过多错误的。

44、存储器部分。在特定实施方式中,可以将这种易出错的存储器部分中初始存储的数据移动到已知是工作的和/或状态良好的另一存储器部分。这种新的存储器部分可以包括例如图1所示的备用存储器120等备用存储器的一部分。在方框660,可以将标识数据的原始存储位置的存储地址或多个存储地址重映射为标识数据迁移至的新的存储器部分。在一种实施方式中,重映射可以包括分配新地址,以经由例如矢量与原始地址相对应,以便可以将对原始地址的调用重定向至指定了被迁移数据的位置的新地址。然后,在方框670,可以将关于这种重映射地址的信息提供给CAM,以更新CAM中存储的重映射信息,其中如下详细描述的,这种信息可以存储为矢量重映射表。在。

45、方框680,响应于将一个或多个重映射地址提供给CAM,也可以将更新后的信息提供给诸如PCM等非易失性可离散寻址的存储器。例如,存储器控制器可以将表示关于存储装置的重映射信息的数字信号提供给CAM,其中,如果更新了CAM中存储的重映射信息,则该存储器控制器可以将CAM中存储的重映射信息的至少一部分拷贝到非易失性可离散寻址的存储器中。在一种实施方式中,可以在运行中,例如在由处理器发起的读取/写入处理等运行时间处理期间,将这种更新后的信息提供给非易失性可离散寻址的存储器。在另一实施方式中,可以由系统执行初始化处理,包括对存储装置的易出错部分进行扫描。0045在一种特定实施方式中,如下进一步详细描述的。

46、,可以利用CAM中存储的重映射信息和/或其他内容,周期性地更新PCM或其他非易失性可离散寻址的存储器。在对存储器的易出错部分进行重映射之后,读取处理600可以前进至方框640,其中例如可以将所读取的数据提供给请求所读取的数据的应用。当然,这种存储器读取处理的细节仅仅是示例,说明书CN101937374ACN101937375A9/12页12本发明要保护的主题不限于此。0046图7是根据实施例的矢量重映射表700的示意图。在其他实施方式中,表700中包括的信息不需要以表的形式格式化;例如,这种信息可以包括阵列或用于组织这种信息的其他方式。这种信息以及关于该信息的组织,可以在例如PCM等非易失性可。

47、离散寻址的存储器中存储为表示这种信息的数字信号。栏710可以包括原始地址740的列表,例如ADDR1,ADDR2,ADDR3等;状态栏720可以包括与栏710中列出的对应原始地址是否已经重映射有关的信息;以及栏730可以包括对应于栏710中列出的原始地址740的重映射地址750的列表,例如ADDR1,ADDR2,ADDR3等。0047在一种实施方式中,原始地址740可以包括应用和/或系统发出的读取/写入请求中包括的一个或多个地址,该应用和/或系统询问存储装置100中在该一个或多个地址处存储的信息。状态栏720可以包括描述了原始地址740是否已被重映射的元数据。如果已发生了这种重映射,则栏730。

48、可以包括对应于原始地址740的重映射地址750。为通过根据图1的示例来示出,ADDR1,ADDR5,ADDR7和ADDR8已经被分别重映射至ADDR1,ADDR5,ADDR7和ADDR8,而ADDR2,ADDR3,ADDR4和ADDR6还未被重映射。这里,还未被重映射的原始地址不具有栏730中对应的重映射地址。在另一实施方式中,因为重映射地址750的存在可能足以指示例如对于特定原始地址740是否已发生了重映射,所以表700不需要包括状态栏720。当然,这种矢量重映射表和存储重映射信息的其他格式的细节仅仅是示例,本发明要保护的主题不限于此。0048图8是根据实施例的存储系统800的框图。控制器8。

49、10可以配置为接收指示了读取请求805的一个或多个信号,该读取请求805包括指定了存储装置825中要读取数据的位置的地址。存储装置825可以包括主存储器820和备用存储器830,例如如上所述的。伴随读取请求输入的地址可以途经通过CAM815,在此将地址与CAM815中存储的内容相比较,CAM815可以包括与原始地址相关联的重映射地址。在一个特定实施方式中,进行重映射处理,而不需要在系统级由用户生成的特定指令和/或信号,以使伴随读取请求输入的地址可以始终包括原始地址。仅仅在CAM搜索之后,就可以将该地址与其关联的重映射地址相关联。换言之,CAM815可以提供从原始地址空间到重映射地址空间的转换。这样,控制器810可以确定读取请求805是否包含已被重映射的地址。根据该确定,控制器810可以将读取请求805定向至主存储器820或备用存储器830,以读取数据。例如,如果读取请求805的地址还未被重映射,则控制器810可以将读取请求转发给主存储器820,而如果该地址已被重映射,则控制器810可以修改读取请求805,以包括可以定向至备用存储器830的重映射地址。随后,主存储器820或备用存储器830可以将读取的数据835提供给错误检测块840,错误检测块840可以包括例如错误计数器和/或ECC解码器。在一个实施例中,可以将包括ECC解码器的错误检测块840放置在存储装置825的晶。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1