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

文档序号:9476192阅读:来源:国知局
M驱动器接口 20从主机接口 18接收访问请求信号,所述访问请求信号 请求执行读取事件、编程事件和/或擦除事件。
[0110] 在354,NVSM控制模块27基于访问请求信号来生成页描述符和/或分配块描述 符。页描述符和/或分配块描述符可W被生成W执行一个或多个数据传输事件。数据传输 事件中的每个数据传输事件可W是读取事件或编程事件并且包括仅一个读取准备周期或 一个编程准备周期。针对每个数据传输事件生成的描述符的数量、传输的数据页和/或传 输的数据分配块可W由NVSM控制模块27来确定。
[0111] 数据传输事件中的每个数据传输事件包括两个或更多个描述符。每个传输事件的 数据页的数量和/或数据分配块的数量还可W由NVSM控制模块27来确定并且在生成的描 述符中被指示。每个数据传输事件可W传输一个或多个数据页和/或一个或多个数据分配 块。页大小可W是预定的且固定的或者可W由NVSM控制模块27设定。
[0112] 在356,命令管理模块60基于在354生成的页描述符和/或分配块描述符来如W 上描述的生成第一参数信号80和第二参数信号82。
[om]在358,ECC模块(例如,ECC模块48、ECC模块48'中的一个ECC模块)和接口管 理模块(例如,接口管理模块50、接口管理模块50'中的一个接口管理模块)基于第一参数 信号80和第二参数信号82来确定是否要执行读取事件或编程事件。在执行读取事件时执 行任务360。在执行编程事件时执行任务370。
[0114] 在360,接口管理模块生成用于指示NVSM12经由通道100从NVSM12向接口管理 模块传输数据块的指令信号102。基于第二参数信号82来生成指令信号102。
[0115] 在362,NVSM12准备数据页和/或数据分配块并且基于指令信号来向通道100中 的一个或多个通道传输该数据页和/或数据分配块。数据页和/或数据分配块可W由接口 管理模块的FIFO寄存器来接收。
[0116] 在364,可W基于参数信号80、参数信号82来将数据页和/或数据分配块从接口 管理模块传输到ECC模块。如图2-5中示出的,可W将数据页和/或数据分配块传输到ECC 模块的一个或多个解码器。
[0117] 在366,经由例如皿S生成模块52、缓冲器管理模块44、解密模块54W及解压缩模 块56来将数据页和/或数据分配块传输到NVSM驱动器接口 20。主机13可W从NVSM驱动 器接口 20接收数据页和/或数据分配块。如所示出的,在执行任务366之后,所述方法可 W返回到任务352或在380结束。
[0118] 在370,由NVSM驱动器接口 20来接收数据页和/或数据分配块。在371,经由例 如压缩模块40、加密模块42、缓冲器管理模块44W及孤S生成模块46来将数据页和/或 数据分配块转发到ECC模块。
[0119] 在372,ECC模块可W基于第一参数信号80来向接口管理模块传输数据页和/或 数据分配块。如图2-4中示出的,数据页和/或数据分配块可W从ECC模块的编码器被传 输并且传播到接口管理模块的一个或多个FIFO寄存器,。如图5中示出的,作为备选,数据 页和/或数据分配块可W从ECC模块的多个编码器被传输到接口管理模块。
[0120] 在374,接口管理模块生成指令信号W基于第二参数信号82来向NVSM12传输数 据页和/或数据分配块。
[0121] 在376,NVSM12经由通道100来接收数据页和/或数据分配块。如所示出的,在 执行任务376之后,所述方法可W返回到任务352或在380结束。
[012引图6的上述任务旨在为说明性示例;取决于应用,所述任务可W顺序地、同步地、 同时地、连续地、在交叠的时间段期间或W不同顺序执行。例如,可W在执行任务376的同 时执行任务374。
[0123] 上述示例中的一些示例针对向NVSM传输的和/或从NVSM传输的每页使用(如W 上所定义的)多个描述符和/或针对向NVSM传输的和/或从NVSM传输的每个分配块使用 多个描述符。通过生成并使用多个描述符,通过每次传输仅使用单个描述符来提高固件灵 活性。下面提供其他示例,包括每个分配块生成一个描述符。基于选择的分配块大小来执行 数据传输允许读取事件和编程事件独立于页大小而被执行并且允许NVSM驱动器适应NVSM 的任何页大小。小于页的大小的分配块对于NVSM控制模块的固件而言更容易处理、更容易 编码和解码,并且对于主机而言更容易处理。与读取数据页相反,从NVSM读取分配块减少 读取延迟。
[0124] 此外,基于分配块的传输允许NVSM驱动器的接口管理模块的FIFO大小独立于页 大小。此外,通过在每个传输事件的NVSM的多个通道上传播数据分配快来改进传输效率。 数据可W在不等待附加的数据块被加载到已经接收到数据块的通道的FIFO中的情况下被 传播到多个通道。运进一步减少传输延迟。
[01巧]图7图示了对每个分配单元生成固件描述符。NVSM控制模块可W针对每个分配 单元生成固件描述符,然后所述固件描述符可W被存储在存储器中。作为示例,示出了四个 数据分配单元(或块)AUi4。NVSM控制模块针对AUi4生成固件描述符F/WDesci4W控制 NVSM的操作。固件描述符F/WDesci4分别对应于数据分配单元AUi4。数据分配单元AUi4 在固件描述符的生成之前共同地被示出为单个数据块420。数据分配单元AUi4在对固件描 述符的生成之后被单独地示出。数据分配单元AUi4可W被分离W允许在相同时间段期间 对数据分配单元AUi4的并行传输。
[0126] 如参考图1的实施例描述的,图8图示了对每个分配单元生成描述符(例如,硬 件描述符)。NVSM控制模块27可W针对具有预定数量的数据分配单元AUi4的单个数据块 424生成固件(或第一)描述符422。固件描述符422可W被存储在存储器94中和/或被 提供给描述符生成模块103。描述符生成模块103可W针对数据分配单元AUi4中的每个数 据分配单元生成第二描述符。第二描述符可W是硬件描述符并且被标识为H/WDesci4。第 二描述符用于控制NVSM12。与第二描述符相关联的数据量和与由NVSM控制模块27生成 的固件描述符422相关联的数据量相同。尽管在图8中示出了在第二描述符与数据分配单 元AUi4之间的一对一关系,但是第二描述符中的每个第二描述符可W与一个或多个数据分 配单元AUl4相关联。下面进一步描述从固件(第一)描述符到硬件(或第二)描述符的 转换。
[0127]数据分配单元AUl4中的每个数据分配单元可W具有任何数据量。数据分配单元 AUl4的大小可W是预定的、固定的和/或由NVSM控制模块27来设定。分配单元的大小可 W小于、等于或大于数据页的大小。第二描述符中的每个第二描述符可W用于控制对一个 或多个数据页的传输并且因此可W对应于单个或多平面读取操作和/或编程(写入)操 作。描述符生成模块103可W生成用于向NVSM12的多个通道传播数据分配单元AUl4的 第二描述符,W使在接口管理模块50与NVSM12之间的数据的并行传输最大化。
[0128] 图1和图8的上述特征允许NVSM控制模块27在执行数据的多平面(多页)传输 时生成单个固件描述符。运是因为描述符生成模块103将单个固件描述符转换成多个描述 符,所述多个描述符由命令管理模块60执行。由描述符生成模块103生成描述符允许NVSM 控制模块27继续WNVSM12可识别的顺序来向NVSM12分派数据W及从NVSM12分派数 据。描述符生成模块103可W代替NVSM控制模块27来执行地址映射。描述符生成模块103 可W例如将用于数据分配单元的逻辑块地址映射到物理块地址。物理块地址是NVSM12中 的存储器位置的地址。数据的分派、描述符的生成W及由描述符生成模块103执行的地址 映射使由NVSM控制模块27在执行数据传输中执行的计算量最小化。
[0129] 存储器94可W包括如例如在图2中示出的先进先出(FIFO)寄存器。FIFO寄存器 中的每个FIFO寄存器可W与分配单元具有相同的大小。作为结果,FIFO寄存器的大小可 W独立于数据的页大小。FIFO寄存器的大小与数据分配单元的大小的匹配防止在例如图2 的ECC模块48与FIFO寄存器之间的速度不匹配。通过传输小于数据页的数据量,在每个 传输事件的FIFO寄存器的出口中传输较少的数据,运允许更快的数据传输。运减少与FIFO 寄存器相关联的数据传输延迟。为了进一步减少传输延迟,ECC模块48可W在从NVSM12 接收数据W及向NVSM12传输数据时通过FIFO寄存器和/或对应的通道进行旋转。数据 块可W在传输期间被分成两个或更多个数据部分。例如,16千字节(KB)的数据块可W被 划分成两个8KB部分。第一部分可W在第二部分被传输到第二FIFO寄存器和/或从第二 FIFO寄存器被传输的同时被传输到第一FIFO寄存器和/或从第一FIFO寄存器被传输。
[0130] 如W上所述,可W使用多种方法来操作本文中公开的NVSM存储系统。在图9中图 示了另一示例方法。图9图示了描述符生成方法。尽管主要关于图1和图8的示例来描述 图9的任务,但是所述任务可W被应用到本公开内容的其他实施例。可W迭代地执行所述 任务。
[0131] 所述方法可W在500开始。在502,NVSM控制模块27接收和/或检测对来自主机 设备13的访问请求信号的接收。在504,NVSM控制模块27基于访问请求信号使用固件92 来生成一个或多个固件(第一)描述符。图10示出了由NVSM控制模块27生成的固件描 述符505的示例。固件描述符505可W包括3个控制行(被标识为行0-2)和64个参数行 (被标识为行3-66)。控制行和参数行中的每个行可W具有信息字。字中的每个字可W被 称为描述符字(或DWORD)。任何数量的控制行和参数行可W被包括在固件描述符中。在参 数行中,每个字节的信息可W被称为输入参数。参数行中的每个DWORD可W包括4个字节 的参数。由于每个固件描述符可W包括64个参数行,所W每个固件描述符可W包括256个 参数。
[0132] 固件描述符的控制行包括具有控制信息的控制字段。图11示出了针对图10的固 件描述符的控制行的示例。第一控制行--行0包括控制字段PRMT_R0W_NUM、SRC_LENW 及SRC_PTR。第二控制行一一行2包括控制字段DF_S化和DST_PTR。第S控制行一一行3 包括控制字段SC0-SC9。保留字段RSVD可W用于其他控制信息。在下表中提供了对控制字 段PRMT_R0W_NUM、SRC_LEN、SRC_PTR、DF_S化和DST_PTRW及SC0-SC9 的描述。
[0133]
[0134]
[0135]
[0136]
[0137]
[0138] 固件描述符字段表
[0139] 除了上表中陈述的信息,固件描述符的控制字段中的每个控制字段还可W指示是 否要使用(i)模板中的默认值和/或信息,或者(ii)利用固件描述符的参数行中的对应的 值和/或信息来替换模板中的默认值和/或信息。例如,控制字段SCO可W包括默认位,默 认位可W被设定为'〇'W指示对模板中的对应的默认字节值的使用。默认位可W被设定为 'rW指示对被提供作为固件描述符的参数行中的参数中的一个参数的对应的字节值的使 用。控制字段可W包括多于一个默认位。例如,控制字段SC3可W包括针对页地址、块地址 和逻辑单元号地址中的每个地址的默认位W指示是否要使用默认页地址、默认块地址和/ 或默认逻辑单元号地址。另外,控制字段中的每个控制字段可W具有不同的格式并且控制 字段的格式可W基于其中正在使用对应的NVSM系统的应用而被设定。
[0140] 在506,NVSM控制模块27向存储器94发送固件描述符。在507,NVSM控制模块 27可W在存储固件描述符之后触发描述符生成模块103。NVSM控制模块27可W通过例如 向描述符生成模块103发送指示向存储器94传输一个或多个固件描述符的描述符命令信 号来触发描述符生成模块103。可W不执行任务507。作为另一示例,描述符生成模块103 可W检测固件描述符的传输并且在没有从NVSM控制模块27接收到命令信号的情况下开始 生成硬件描述符。
[0141] 在508,描述符生成模块103访问FIFO存储器104并解析来自描述符命令信号和 /或固件描述符中的一个或多个的命令参数。在510,描述符生成模块103从存储器94访 问一个或多个描述符模板(下文被称为"模板")并且基于一个或多个描述符命令信号和/ 或固件描述符中的命令参数来更新模板中的描述符字段。模板中的每个模板可W是通用描 述符和/或灵活描述符。通用描述符可W具有在参数字段中的每个参数字段中具有预定默 认值的预定的参数字段集。可W固定通用描述符的用途。灵活描述符是指参数字段能够针 对其被更新和/或用于不同用途的描述符。例如,灵活描述符的字段可W用于设定NVSM的 不同控制参数。
[0142] 在512,描述符生成模块103将如在510修改的一个或多个模板存储在存储器94 中。如修改的一个或多个模板不替换在510访问的对应的一个或多个模板。运允许相同的 默认模板和/或经修改的模板被用于随后生成的描述符(硬件描述符和/或固件描述符)。
[0143] 在514,描述符生成模块103针对固件描述符中的每个固件描述符并且根据对应 的和经修改的模板生成一个或多个第二描述符(例如,硬件描述符)。可W针对(i)由NVSM 控制模块27生成的固件描述符,和/或(ii)对应的和经修改的模板中的每一个来生成多 个第二描述符。第二描述符可W包括硬件描述符和/或固件描述符。下面关于图13-14的 实施例来描述生成多个硬件描述符的示例。
[0144] 在516,描述符生成模块103将在514生成的第二描述符存储在存储器94中。在 514生成的第二描述符可W被存储为对应的和经修改的模板的一部分或者与对应的和经修 改的模板分开。在518并且在生成和/或保存第二描述符之后,描述符生成模块103可W向 NVSM控制模块27指示完成了当前的一个或多个第二描述符的生成。描述符生成模块103 可W通过W下操作来提供该指示:向NVSM控制模块27发送状态信号;设定经由例如A皿总 线105对NVSM控制模块27可访问的标志;和/或通过生成中断。可W经由A皿总线105 传输状态信号。
[0145] 在520,描述符生成模块103可W确定是否存在由NVSM控制模块27生成W转换为 例如多个硬件描述符的另一固件描述符。如果存在另一固件描述符,则可W执行任务508, 否则所述方法在522结束。
[0146] 在上述方法期间,例如在518, 一个或多个状态寄存器可W针对生成的、执行的和 /或转换为硬件描述符的固件描述符中的每个固件描述符被更新。描述符生成模块103可 W在描述符生成模块103完成对一个或多个描述符的生成期间和/或之后更新状态寄存器 中的字段。NVSM控制模块27可W跟踪运些字段W确定固件到硬件(或单个到多个)描述 符转换是否已经被执行并完成。图12图示了可W用于运些跟踪用途的状态寄存器530的 示例。
[0147] 示出的状态寄存器530包括四个字段。被标识为DGE_GENDES_CNT的第一字段指 示由描述符生成模块103针对特定固件描述符生成的描述符的数量(例如,硬件描述符和 /或固件描述符的数量)。被标识为DES_FIF0_AroR的第二字段是地址指针,该地址指针指 示由描述符生成模块103生成的描述符被存储的存储器94中的地址。被标识为DGE_ERR_ CODE的第=字段指示在固件到硬件和/或单个到多个描述符转换过程期间是否已经出现 错误。作为示例,第=字段可W指示当在固件描述符的参数行中提供的参数是意指由描述 符生成模块1
当前第4页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1