固态器件中的多纠错码代码字尺寸的制作方法_2

文档序号:9547041阅读:来源:国知局
或磁性介质器件的)、输入/输出(1/0)接口 203、数据缓存器204、配置存储器205以及ECC编码器/解码器206。
[0021]数据缓存器204提供硬件机构,用于实现SSD前端和SSD后端的分离,所述SSD前端与主机系统接口,所述SSD后端与存储器件202接口。数据在经由1/0接口 203从主机系统被接收用于存储时或者在从存储器件202检索到用于经由1/0接口 203传输到主机系统时临时存储在数据缓存器204中。当起到帮助存储的功能时,数据缓存器204可以被分割以便临时划分其中所存储的数据并适当地创建有尺寸的(sized)数据有效载荷,用于编码成由SSD后端使用的代码字。采用这种方式,SSD后端参与将数据有效载荷编码成适合于在存储器件202的页边界内的代码字,并且将从存储器件202所检索的代码字解码成相同尺寸大小的数据有效载荷。另一方面,SSD前端参与接收和发送主机数据单元。
[0022]数据缓存器204可以由易失性或非易失性存储器来实现,并且可以包括一个或多个块、页、或其它存储单元。数据缓存器204和存储器件202的功能可以在同一存储器件中或者跨一组存储器件分布。而且,存储器件可以采用任何形式,诸如,闪存、RAM、光学或磁性介质等等。在一个实例中,数据缓存器204是一个或多个存储器件202内(例如,在运行时间动态地)预留的存储器的一部分。
[0023]数据存储系统200可以包括机器可读介质(例如,非瞬态介质),其上包括指令,该指令在被执行时,实现此处所描述的在I/O接口 203、数据缓存器204以及存储器件202之间的数据传送以及数据的传输和/或修改的其它方法。在一个实施例中,数据存储系统200从主机设备接收主机数据单元。所述主机数据单元可以包括一个或多个扇区的数据或者根据主机设备设定尺寸的其他数据单元。所述主机数据单元可以每个具有相同的尺寸,并且该尺寸可以有主机系统确定。所述主机系统可以包括例如微处理器、外部存储器和/或与包括存储器件的数据存储系统协同运行的外围组件。
[0024]通过将来自主机数据单元的数据有效载荷编码成代码字以及将该代码字存储在存储器件202中,从主机接收的数据可以存储在存储器件202中。所述主机数据单元接收于主机,进入数据缓存器204,并且数据缓存器204将所述主机数据单元存储在数据有效载荷中。所述数据有效载荷ECC编码器/解码器206编码,并且数据缓存器204有助于根据所述数据有效载荷形成(populate) —个或多个尺寸的一个或多个代码字。在一些方面,可利用的代码字尺寸基于ECC编码器/解码器206的能力。例如,ECC编码器/解码器206能够编码和解码lkB代码字、2kB代码字、3kB代码字以及4kB代码字。在有些方面,所述控制器201向ECC编码器/解码器206指明了在编码特定数据有效载荷时使用的代码字的尺寸。在有些方面,ECC编码器/解码器206可以基于将被编码的所述数据有效载荷的尺寸动态地确定将使用那个尺寸的代码字。
[0025]ECC编码器/解码器206吞吐量可以以每秒的代码字来进行测量。例如,ECC编码器/解码器206可以花费与lkB代码字所花费的时间相同量的时间来编码4kB代码字。因此,理想的是尽可能使得代码字的尺寸一样大,因为编码一个4kB代码字所花费的时间小于编码4个14kB代码字所花费的时间。可选择地,ECC编码器/解码器206吞吐量可以以每秒的字节数来测量。例如,ECC编码器/解码器206可以花费比4kB代码字所花费的时间短的时间来编码lkB代码字。因此,使用较小的代码字可能依然不能与使用更长的代码字一样有效率,因为可能存在每个代码字处理时间
[0026]在所描述的实例中,数据存储系统200可以在两个数据有效载荷之间划分所接收到的主机数据单元。第一数据有效载荷可以编码成第一代码字而第二数据有效载荷编码成第二代码字。如上所述,将为每个数据有效载荷编码的代码字的尺寸可以由所述控制器201确定并且被指示给ECC编码器/解码器206。代码字的构建可以在数据缓存器204中发生。数据缓存器204可存储从主机接收到的主机数据,该数据缓存器204可存储由所述控制器201所创建的数据有效载荷,并且数据缓存器204可存储准备被写到存储器件202的被编码代码字。
[0027]在已经生成代码字之后,该代码字可以被写到闪存的一个或多个页。在有些方面,该代码字可以存储在闪存页的各个地址。在一个方面,这些代码字可以顺序地存储。在上述实例中,含有所接收到的主机数据单元的第一部分的第一代码字可以被写到第一页,而含有所接收到的主机数据单元的第二部分的第二代码字可以被写到第二页。如上所述,第一和第二页可以是相邻页,因为闪存页是按顺序被写入的。每个代码字所存储的各个地址可以基于代码字长度、闪存页尺寸以及各个闪存页的开始地址被预先确定,或者在运行时间确定,并且存储在例如配置存储器205中。配置存储器205可以包括查找表,并且在向存储器件202存储和从存储器件205代码字之前,处理器201可以从查找表检索与该代码字相关联的相应地址。
[0028]在有些方面,SSD控制器保持存储在闪存中的每个主机数据单元的虚拟地址。当接收到用于存储的主机数据时,所述主机数据单元与相应的逻辑地址相关联。控制器将主机数据单元的相应逻辑地址映射到所述主机数据单元被编码成的对应数据代码字的虚拟地址。采用这种方式,每个主机数据单元在它们被存储之后可能占(account for)多个数据代码字。所述多个代码字的每一个的虚拟地址随后被映射到闪存中的物理地址。因此,即使主机数据单元开始于代码字内的位置(例如,在开始数据位置),SSD控制器也知晓每个主机数据单元的位置整体地落于单一代码字内、跨过代码字边界,或者甚至跨过闪存页的边界。在一个实例中,逻辑地址的映射包括第一虚拟地址的每一个的偏移值,使得主机数据单元可以被编索引(index)以及从被编码到单一代码字或多个代码字之间的一个或多个数据有效载荷中被检索到。
[0029]类似地,SSD控制器可以存储在相应偏移地址处的一个或多个代码字、基于所述代码字长度的偏移地址、闪存页尺寸以及闪存页的起始地址。因此,在存储器件中存储代码字可以包括从查询表中检索与存储器件的闪存页相关联的相应偏移地址以及将相应的代码字存储在相应偏移地址处。
[0030]还是参见图2,处理器201可以起到SSD控制器的功能。处理器201可以使用配置存储器205,用于临时存储用来管理数据存储系统200的数据和信息。处理器201可以包括几个内部组件(未示出),诸如只读存储器、闪存组件接口(例如,管理沿着到存储器件202的串行连接的指令和数据传送的多路复用器)、1/0接口、纠错电路等等。在有些方面,控制器201的所有这些元件都可以继承到单一芯片上。在其他方面,这些元件可以分开位于其自己的PC板上。
[0031]处理器201还可以被配置为执行代码或指令以便执行此处所描述的操作和功能,管理请求流和地址映射,以及执行计算和生成命令。处理器201被配置为监视和控制系统200的组件的操作。该处理器可以是通用微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、可编程逻辑器件(PLD)、控制器、状态机、门逻辑(gatedlogic)、离散硬件组件或前述例子的组合。一个或多个指令序列可以存储为处理器201和/或其处理器内的ROM上的固件。一个或多个指令序列可以为存储在存储介质205、存储器件202中和从其中读取的软件、从主机设备(例如,经由I/O接口 203)接收的软件。R0M、存储介质205、存储器件202代表机器或计算机可读介质(例如非瞬态介质)的实例,其上可以存储可由处理器201和/或其处理器执行的指令/代码。机器或计算机可读介质通常可以指的是任何用于向处理器201和/或其处理器提供指令的介质或媒介,包括诸如用于存储介质205或用于内的缓存器的动态存储器的易失性介质和诸如电子介质、光学介质以及磁性介质的非易失性介质两者
[0032]在有些方面,存储器件202包括闪存。处理器201被配置为响应于来自主机设备的写命令在存储器件202中存储从主机设备接收的数据(例如,前面描述的主机扇区(sector)数据)。处理器201还被配置为响应于来自主机设备的读取命令读取存储在存储器件202中数据并且将所读取的数据传送到主机设备。主机设备可以是被配置为经由I/O接口 203连接到数据存储系统200以及将数据存储在数据存储系统200中的任何设备。该主机设备可以是计算系统,诸如个人计算机、服务器、工作站、膝上计算机、PDA、智能电话等等。可替代地,主机设备可以是电子设备,诸如数字相机、数字音频播放器、数字视频记录器等等。
[0033]在有些方面,配置存储器是一种存储介质。在这点上,存储介质205代表被用于临时存储用来管
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1