用于生成用以由于错误而重新访问存储驱动器的非易失性半导体存储器的描述符的装置...的制作方法_2

文档序号:9476192阅读:来源:国知局
统10的操 作。
[0049]NVSM存储系统10包括主机13 (或主机侧)和NVSM驱动器14 (或NVSM侧)。主 机13包括主机控制模块16和主机接口 18。NVSM驱动器14经由NVSM驱动器接口 20与主 机13通信。NVSM驱动器14包括NVSM驱动器接口 20、接收路径22、传输路径24、接口管理 控制系统26W及NVSM12。NVSM驱动器接口 20与主机接口 18通信。接收路径22和传输 路径24在NVSM驱动器接口 20与NVSM12之间传输数据。接口管理控制系统26包括NVSM 控制模块27。NVSM控制模块27控制向NVSM12和从NVSM12的数据传输。
[0050] 接口管理控制系统26基于数据的分配块(或分配单元(AU))的预定的大小、选定 的大小和/或确定的大小来操作。运不像基于单个固定块大小操作的传统NVSM驱动器。在 传统NVSM中,单个块大小等于数据页的大小。
[0051] 在本公开内容中,数据的分配块是指由NVSM驱动器14设定的数据量(或大小边 界)并且用于在NVSM驱动器14的设备和/或模块之间传输数据。去往和来自NVSM12的 每个数据传输事件包括一个或多个数据分配块。数据传输事件可W是编程事件或读取事 件。分配块的大小可w:针对不同的读取事件;针对不同的编程事件;和/或在读取事件与 编程事件之间是相同的或不同的。分配块的大小可W由NVSM控制模块27确定、设定和/ 或调整。下面进一步描述分配块、分配块大小和分配块的传输。
[0052] 主机控制模块16经由主机接口 18向NVSM驱动器14传输主机数据并且从NVSM 驱动器14接收主机数据。运可W包括访问事件,诸如读取事件、写入事件(或编程事件) 和/或擦除访问事件。主机13可W基于接收到的数据对象来生成皿S和/或从NVSM驱动 器14请求主机数据扇区。皿S可W是从主机13向NVSM驱动器14传输的最小长度数据元 素。在接口 18、20的相应端口之间传输皿S。例如,接口 18、20可W是串行高级技术附件 (SATA)接口、小型计算机系统接口(SCSI)、串行附接的SCSI(SA巧、光纤通道接口、通用串 行总线扣SB)接口等等。
[0053] 主机控制模块16还可W生成访问请求信号30,诸如数据编程信号、数据读取信 号、数据擦除信号等等。访问请求信号30可W由NVSM控制模块27和/或由NVSM驱动器 14的其他模块经由NVSM驱动器接口 20接收。NVSM控制模块27基于访问请求信号30来 控制对NVSM12的访问。NVSM驱动器14经由NVSM驱动器接口 20接收皿S。NVSM控制模 块27基于访问请求信号30来访问和/或请求来自NVSM12的驱动器数据扇区值DS)。
[0054] 接收路径22包括压缩模块40、加密模块42、缓冲器管理模块44、驱动器数据扇区 值D巧生成模块46、错误校正码巧CC)模块48、接口管理模块50W及NVSM12。传输路径 24包括NVSM12、接口管理模块50、ECC模块48、皿S生成模块52、缓冲器管理模块44、解 密模块54W及解压缩模块56。缓冲器管理模块44W及DDS生成模块46和皿S生成模块 52可W被组合W形成单个模块。接口管理控制系统26包括NVSM控制模块27、命令管理模 块60、ECC模块48W及接口管理模块50。NVSM驱动器14的模块可W被称为NVSM存储系 统并且可W被组合成一个或多个模块。
[00巧]NVSM驱动器接口 20可W从主机接口 18接收单个数据流或多个并发的并行数据 流。数据流可W被传输到压缩模块40。多个并发的并行数据流可W在主机接口 18和NVSM 接口 20例如是SAS接口时被接收。
[0056] 压缩模块40在可行时并且并且在皿S被缓冲器管理模块44接收之前对从主机接 口 18接收到的所述皿S进行压缩。对于与从主机接口 18接收到的皿S相同长度的皿S执 行压缩。压缩模块40可W使用有损压缩方法和/或无损压缩方法。有损压缩和解压缩提供 在压缩和解压缩之后与原始数据接近但不相同的数据。无损压缩和解压缩提供在压缩和解 压缩之后与原始数据相同的数据的重建。无损数据压缩包括检测重复位模式并移除冗余。
[0057] 压缩模块40在可行时对从主机13接收到主机数据扇区(皿巧进行压缩。皿S在 被接收时可W是未压缩的、部分压缩的和/或完全压缩的。皿S可W是从主机13向NVSM驱 动器14传输的最小长度数据元素。某些皿S可能是不能压缩的,例如,当使用无损压缩并 且对应的数据模式不包含冗余时。
[0058] 加密模块42对经压缩的皿S进行加密。加密模块42对从压缩模块40接收到的 数据进行加密。加密可W包括一个或多个公钥和私钥。加密还可W包括特定于NVSM驱动 器14或NVSM驱动器14的部件的一个或多个密钥,例如特定于NVSM控制模块27和/或 NVSM12的密钥。
[0059] 缓冲器管理模块44将皿S存储在缓冲器70中并且向DDS生成模块46转发皿S。 缓冲器70可W包括易失性存储器,诸如RAM、动态RAM值RAM)和/或静态RAM(SRAM)。缓冲 器管理模块44可W在将一个或多个皿S存储在NVSM12中之前收集并存储该一个或多个 HDS。
[0060] 缓冲器管理模块44可W:在可行时将从加密模块42接收到的孤S转换为皿S;从 (在缓冲器管理模块44与NVSM12之间的)缓冲器管理模块44的下游的部件接收皿S;和 /或向解压缩模块56传输皿S。DDS中的每个DDS可W大于或等于皿S的大小。解压缩的 皿S被传输到主机13。缓冲器管理模块44可预定的顺序组合并存储经压缩的和/或 经加密的皿S,而无论皿S被接收的顺序如何。
[0061] 例如,皿S可数字顺序被接收或可不同的顺序被接收。顺序地接收到的 皿S可W被存储在不同的皿S寄存器72中W允许W数字顺序或预定的顺序对皿S进行重 新排序。因此,皿S寄存器72可W用于针对相应的DDS(示出了皿S寄存器1-N和皿S集 1-脚提供皿S集74。因为皿S寄存器被填充和/或预定的DDS长度限制被满足,所W皿S 集可W从缓冲器管理模块44被释放并被传递到孤S生成模块46。例如,在没有另外的皿S 可W和/或将要与当前DDS的其他皿S组合时,预定的DDS长度限制被满足。
[0062]DDS生成模块46基于皿S寄存器72中的组合的和/或存储的(一个或多个)皿S 并且基于皿S信息和孤S信息来生成孤S。孤S生成模块46在将皿S存储在NVSM12中之 前将皿S转换为DDS。可W从缓冲器管理模块44接收到皿S信息和DDS信息。皿S信息和 DDS信息可W包括皿S信息位和DDS信息,诸如DDS长度、DDS位槽可用性等等。
[0063]DDS生成模块46可W生成具有相同位长度的每个孤S。多余数据(nuisancedata) 是指被添加到一个或多个皿S使得生成的孤S具有预定的位长度的数据。经压缩的皿S可 W具有不同的位长度。不同量的多余数据被添加W组合经压缩的皿SW生成具有等同长度 的孤S。NVSM控制模块27通过添加多余数据来防止皿S被分割在两个孤S之间。取代于 将皿S的部分与两个或更多个其他皿S-起存储,多余数据被附加。例如,多余数据可W包 括全部为0、全部为1、空状态和/或用于使对NVSM控制模块27的编程和/或处理最小化 的冗余数据。
[0064]ECC模块48和接口管理模块50可W基于来自命令管理模块60的参数信号来操 作。命令管理模块60基于命令和/或从NVSM控制模块27和/或描述符生成模块103接 收到的作业描述符84来生成第一参数信号80和第二参数信号82。
[0065] 在数据传输事件期间,NVSM控制模块27或NVSM驱动器14的其他模块中的一个 模块接收访问请求信号30。NVSM控制模块27可W被实施为片上系统(SoC)并且包括或访 问第一非易失性存储器90。第一非易失性存储器90存储由NVSM控制模块27执行的固件 (FW) 92。在执行固件92中,NVSM控制模块27基于访问请求信号30来生成描述符84 (下 面被称为FW描述符)。描述符84被存储在第二非易失性存储器94中和/或被提供给描述 符生成模块103。如所示出的,第二非易失性存储器94可W是命令管理模块60的一部分或 与命令管理模块60分开。第二非易失性存储器94可W存储由描述符生成模块103生成的 描述符84和/或描述符95。使用固件生成的描述符,例如由NVSM控制模块27生成的描述 符被称为固件描述符。使用硬件生成的描述符,诸如由描述符生成模块103生成的描述符 被称为硬件描述符。如下面所述描述的,第二非易失性存储器94还可W存储用于解读描述 符84、描述符95的参数信息96W确定参数并生成参数信号80、参数信号82。
[0066] 在生成描述符84中,NVSM控制模块27可W确定:基于访问请求信号的数据分配 块的大小,将数据块的大小与其他参数相关联的表,使用的应用等等。数据分配块的大小可 W被称为分配单元(AU)大小或分配块大小。使用的应用可W指示,例如,主机的类型、NVSM 驱动器的类型W及主机和NVSM驱动器的速度。NVSM控制模块27生成用于指示分配块大小 的描述符84。描述符84可W分别包括:分配块大小;缓冲器寄存器位置;NVSM地址;NVSM 通道标识符(ID) ;NVSM设备标识符(例如,存储器忍片ID);数据格式;要传输的数据量;操 作位的类型(例如,读取位、编程位和/或擦除位)等等。下面描述硬件描述符95的生成。
[0067] 每个分配块大小可W是基于页的、基于子页的或不基于页的。在分配块大小等于 一个或多个数据页的大小时,分配块大小是基于页的。作为示例,单个数据页可W等于8千 字节(邸)。其他示例页大小是4KBU6KB和32KB。在两个或更多个数据分配块的大小等于 1个数据页的大小时,分配块大小是基于子页的。在分配块大小不是1页的整数倍并且分配 块大小的整数倍不等于1个数据页的大小时,分配块大小是不基于页的。分配块可W包括 任何数据量。
[0068] 可W向NVSM12的通道100W及从NVSM12的通道100传输数据分配块。一个或 多个数据分配块("数据块")的传输可W被称为数据传输事件。例如,数据传输事件还可 W发生在与通道串联和/或通信的设备之间。在图2-5中示出了在示例设备和/或模块之 间的示例数据传输事件。
[0069] 命令管理模块60可W基于描述符84来确定:分配块大小、ECC校正能力(校正的 每数据块位错误的数量);缓冲器寄存器位置;NVSM地址;数据格式;要传输的数据量;独 立磁盘冗余阵列(RAID)操作;读取位、编程位和/或擦除位等等。命令管理模块60执行描 述符84、描述符95和/或基于描述符84、描述符95来生成第一参数信号80和第二参数信 号82。
[0070] 第一参数信号80可W包括:ECC校正能力位;缓冲器寄存器位置位;NVSM地址位; 数据格式位;要传输的数据量位;要传输的数据块的数量位;独立磁盘冗余阵列(RAID)操 作位;读取位、编程位和/或擦除位等等。第二参数信号82可W包括:NVSM地址位;分配块 大小位;要传输的数据块的数量位;读取位、编程位和/或擦除位等等。
[0071] ECC模块48执行错误校正并且对从NVSM12接收到的孤S和数据进行编码和解 码。ECC模块48基于第一参数信号80来向接口管理模块50传输孤S并且从接口管理模块 50接收孤S。接口管理模块50基于第二参数信号82来访问NVSM12。接口管理模块50向 NVSM12传输指令信号102W控制对NVSM12的访问。NVSM12基于和/或根据指令信号 102经由通道100来向接口管理模块50传输数据信号和/或从接口管理模块50接收数据 信号。指令信号可W包括用于从NVSM12读取数据和/或将数据写入到NVSM12的命令。 指令信号用于用信号通知NVSM12 :要被执行的读取操作或编程操作;被传输的数据量和/ 或分配块的数量;分配块的地址等等。
[0072] 对于每个描述符,可W生成一个或多个指令集。描述符可W是页描述符或分配块 描述符。页描述符是指用于触发和/或传输一个或多个数据页的描述符。分配块描述符是 指用于触发和/或传输一个或多个数据分配块的描述符。页描述符和分配块描述符可W是 触发描述符、读取描述符或编程描述符。触发描述符用于初始化数据传输事件(读取事件 或编程事件)。作为示例,触发描述符可W标识命令类型(读取或编程)、NVSM12和/或 缓冲器管理模块44内的目标地址W及要传输多少数据(例如,页的数量和/或分配块的数 量)。
[0073] 读取描述符用于从NVSM12读取数据。编程描述符用于将数据编程到NVSM12。作 为示例,读取描述符和编程描述符可W标识要传输多少数据和数据页内的数据的位置。描 述符可W是触发描述符和读取描述符两者。描述符可W备选地是触发描述符和编程描述符 两者。
[0074]ECC模块48和/或其他ECC模块可W:在压缩模块40与加密模块42之间被连接 W对经压缩的皿S进行编码;在加密模块42与缓冲器管理模块44之间被连接W对经加密 的皿S进行编码;在缓冲器管理模块44与孤S生成模块46之间被连接;和/或如所示出的 在孤S生成模块46与NVSM12之间被连接。然后,孤S被存储在NVSM12中。
[007引ECC模块48可W使用一种或多种ECC方法W防止在将数据写入到NVSM12W及 从NVSM12读取数据时的错误。校验位可W在被存储到NVSM12中之前被生成并被添加到 孤S和/或可W与孤S分开地被存储在NVSM12中。
[0076] 接口管理模块50可W在NVSM12中的物理块地址(PBA)处存储孤S。孤S的PBA 可W被存储在一个或多个位置中并且由接口管理模块50在访问NVSM12中的DDS的存储 位置时获取。例如,PBA可W被存储在第一非易失性存储器90中和/或被存储在NVSM12 中。第一非易失性存储器90或NVSM12可W存储PBA的映射表104,其可W基于分配块大 小。作为示例,与分配块相关联的(一个或多个)PBA可W被标识在映射表104中。运不同 于基于数据页的大小来存储PBA。分配块大小可W基于或独立于数据页的大小而被设定。 因为固件92基于分配块大小来存储PBA,所W分配块大小的变化不需要固件指令的变化, 而是简单地需要分配块大小设定调整。映射表104可W将逻辑块地址(LBA)与PBA相关联。 映射表104可W由路径22、24中的模块中的任何模块访问。映射表104可W被存储在描述 符生成模块103中和/或与描述符生成模块103共享。
[0077] 接口管理模块50可W在向ECC模块48转发孤S之前访问NVSM12中的孤S。ECC 模块48可W基于访问命令信号和/或与孤S相关联的校验信息来对从NVSM12访问的DDS 进行解码。访问命令信号可W由NVSM控制模块27和/或命令管理模块60来生成并且包 括第一参数信号80。访问命令信号可W包括一个或多个PBA。访问命令信号可W由NVSM 控制模块27基于LBA和/或从主机13接收到的访问请求信号来生成。例如,皿S生成模 块52基于从缓冲器管理模块44接收到的数据请求信号来访问或接收来自ECC模块48的 DDS。
[007引皿S生成模块52和/或缓冲器管理模块44将接收到的DDS分离成皿S。皿S生成 模块52基于从ECC模块48接收到的经解密的DDS来生成一个或多个皿S。皿S生成模块 52基于皿S标识信息和/或数据请求信号来生成皿S。数据请求信号可W包括一个或多个 LBA。解密模块54对来自ECC模块48的经解码的DDS进行解密。由加密模块42使用的密 钥可W由解密模块54共享、访问和/或生成。
[0079] 尽管W特定顺序示出了路径22、路径24的模块,但是其可不同的顺序被重新 布置。例如,加密模块42可W位于压缩模块
当前第2页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1