CN102177556A - 固态存储装置中的转换层 - Google Patents
固态存储装置中的转换层 Download PDFInfo
- Publication number
- CN102177556A CN102177556A CN2009801404724A CN200980140472A CN102177556A CN 102177556 A CN102177556 A CN 102177556A CN 2009801404724 A CN2009801404724 A CN 2009801404724A CN 200980140472 A CN200980140472 A CN 200980140472A CN 102177556 A CN102177556 A CN 102177556A
- Authority
- CN
- China
- Prior art keywords
- memory
- storage arrangement
- memory array
- sector
- lba
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/0292—User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1041—Resource optimization
- G06F2212/1044—Space efficiency improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1048—Scalability
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/20—Employing a main memory using a specific memory technology
- G06F2212/202—Non-volatile memory
- G06F2212/2022—Flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7208—Multiple device management, e.g. distributing data over multiple flash devices
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
- G11C16/102—External programming circuits, e.g. EPROM programmers; In-circuit programming or reprogramming; EPROM emulators
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Read Only Memory (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System (AREA)
Abstract
本发明揭示固态存储装置及用于快闪转换层的方法。在一个此种转换层中,通过并行单元查找表将扇区指示转换为存储器位置,所述并行单元查找表是在初始化时通过存储器装置枚举而填充的。每一表条目包括所找到的每一操作存储器装置的通信信道、芯片启用、逻辑单元及平面。当接收到所述扇区指示时,模函数对所述查找表的条目进行运算以确定与所述扇区指示相关联的所述存储器位置。
Description
技术领域
本发明大体来说涉及存储器装置,且在特定实施例中本发明涉及非易失性存储器装置。
背景技术
在计算机或其它电子装置中,存储器装置可包含内部半导体集成电路。存在许多不同类型的存储器,包含随机存取存储器(RAM)、只读存储器(ROM)、动态随机存取存储器(DRAM)、静态RAM(SRAM)、同步动态RAM(SDRAM)及非易失性存储器(例如,快闪存储器)。
快闪存储器装置已发展成用于广泛的电子应用的非易失性存储器的普遍来源。快闪存储器装置通常使用允许高存储器密度、高可靠性及低功率消耗的单晶体管存储器单元。快闪存储器的常见用途包含个人计算机、个人数字助理(PDA)、数码相机及蜂窝式电话。例如基本输入/输出系统(BIOS)的程序代码及系统数据通常存储于快闪存储器装置中以供在个人计算机系统中使用。
快闪存储器装置还可并入到固态存储装置(例如固态驱动器)中。固态驱动器包括多个快闪封装,其中每一封装可包括许多存储器裸片。固态驱动器用于计算机中以替换硬盘驱动器,所述硬盘驱动器通常已使用磁盘或光盘来存储大量数据。固态驱动器不使用移动部件,而硬盘驱动器需要复杂且敏感的驱动器及读取/写入磁头组合件以与所述磁盘/光盘交互。因此,所述固态驱动器对通过振动及碰撞所致的数据损坏及丢失具更强抵抗性。
当前固态驱动器技术的一个缺点是,由于每一驱动器中的大量存储器裸片,在驱动器的制造期间具有有缺陷的存储器裸片的机会大大增加。因此,将不得不扔掉所述驱动器(极其昂贵的选项),或固态驱动器控制器将不得不通过在由系统存取存储器裸片期间标出有缺陷的裸片而对所述有缺陷的裸片进行补偿。
快闪转换层(FTL)联合操作系统一同工作以使得快闪存储器对所述操作系统显现为磁盘驱动器。此是通过所述FTL由快闪擦除块形成虚拟的小数据块(也称为扇区)来实现。所述FTL还管理并映射固态驱动器上的数据,使得当事实上出于耗损平均的目的将数据存储于快闪存储器的不同位置中时,所述数据对于所述系统显现为是写入某一位置中。
所述FTL通过在存储器中产生并维持大表来执行这些任务,以将对磁盘驱动器的一个扇区的主机请求映射到固态驱动器的快闪存储器裸片中的实际数据位置。这些表可能如此大以致系统RAM无法保存所述表且不得不将所述快闪存储器用作溢出存储器以保存所述表的若干部分。所述大表不仅浪费可用于其它任务的RAM,而且当所述FTL不得不存取快闪存储器以检索表数据时由于快闪存储器在读取及写入方面比RAM慢而使系统性能受损。
出于上述原因,且出于所属领域的技术人员在阅读并理解本说明书之后将明了的下述其它原因,此项技术中需要一种更有效的快闪转换层。
附图说明
图1展示并入有快闪转换层的固态驱动器。
图2展示根据图1的固态驱动器并入有快闪存储器阵列及存储器通信信道的非易失性存储器装置的一个实施例的框图。
图3展示根据图1及图2的非易失性存储器装置的非易失性存储器阵列的一部分的一个实施例的示意图。
图4展示快闪转换层方法的一个实施例的流程图。
图5展示根据图4的快闪转换层方法的并行单元查找表的一个实施例。
图6展示根据图4的快闪转换层方法的并行单元查找表的另一实施例。
图7展示根据图4的方法的数据块查找表概念的图示。
具体实施方式
在本发明的以下详细说明中,参考形成本文的一部分且其中以图解说明的方式展示可实践本发明的具体实施例的附图。在图式中,贯穿数个视图中以相似编号描述大致类似的组件。充分详细地描述这些实施例以使得所属领域的技术人员能够实践本发明。可利用其它实施例且可在不背离本发明范围的前提下做出结构、逻辑及电改变。因此,不应将以下详细说明视为具有限制意义,且本发明的范围仅由所附权利要求书及其等效内容界定。
图1图解说明并入有快闪转换层(FTL)120的固态驱动器的一个实施例的框图。图1的驱动器包括执行FTL 120的具有八个通信信道101到108的控制器130。每一信道101到108连接到四个堆叠式存储器封装。这些装置被图解说明为NAND存储器封装。替代实施例可使用其它类型的固态存储器。
NAND封装内的单个裸片称为逻辑单元(LUN)且可以并行方式存取。LUN可含有多个平面且每一平面为一并行单元(PU)。为每一PU指派唯一编号或某一其它唯一识别符。
每一逻辑单元可共享相同芯片选择(CE)信号,使得每一逻辑单元通过一地址位存取以区分封装中的多个裸片。所述多个裸片可根据不同命令同时并行操作。换句话说,一个裸片可能正经历写入操作,同时另一裸片正在经历读取操作。所述FTL打算仅将平面指为PU。所述FTL方法也指并行单元的不同平面。每一平面可包括不同的存储器裸片。
图2图解说明可并入集成电路裸片上的非易失性存储器装置200的功能性框图。在一个实施例中,非易失性存储器装置200为快闪存储器。
非易失性存储器装置200包含非易失性存储器单元阵列230,例如图3中所图解说明且随后论述的浮动栅极存储器单元。存储器阵列230布置成存取线(例如字线)行及数据线(例如位线)列的存储体。在一个实施例中,存储器阵列230的列包括存储器单元串联串。如此项技术中众所周知,单元到位线的连接确定所述阵列是NAND架构、AND架构还是NOR架构。
可将存储器阵列230组织成若干存储器块。存储器块的数量通常由存储器装置的大小(即,512MB、1GB)确定。在一个实施例中,将每一存储器块组织成64个页。
提供地址缓冲器电路240以锁存通过I/O电路260提供的地址信号。地址信号由行解码器244及列解码器246接收并解码以存取存储器阵列230。所属领域的技术人员受益于本说明将了解,地址输入连接的数目取决于存储器阵列230的密度及架构。也就是说,地址的数目随存储器单元计数的增加及存储体与块计数的增加两者而增加。基于控制信号272的定时,还通过I/O电路260输入及输出数据。
非易失性存储器装置200通过使用感测放大器电路250感测存储器阵列列中的电压或电流改变来读取存储器阵列230中的数据。在一个实施例中,感测放大器电路250经耦合以从存储器阵列230读取并锁存一数据行。包含数据输入与输出缓冲器电路260以经由多个数据连接262与外部控制器进行双向数据通信以及地址通信。提供写入电路255以将数据写入到所述存储器阵列。
存储器控制电路270解码从外部控制器提供于控制总线272上的信号。这些信号可包含读取/写入、芯片启用(CE)、命令锁存启用(CLE)、地址锁存启用(ALE)以及用于控制对存储器阵列230以及存储器装置200的其它电路的操作的其它控制信号。在一个实施例中,这些信号为有效低,但替代实施例可使用有效高信号。存储器控制电路270可为用以产生所述存储器控制信号的状态机、定序器或某一其它类型的控制器。
如在图1中所图解说明,非易失性存储器装置200经由通信信道290与外部控制器通信。在一个实施例中,信道290包括固态驱动器控制器与存储器装置200之间的存储器地址、数据及控制信号。图2的实施例展示作为一个总线耦合到I/O电路260的地址及数据。在替代实施例中,地址及数据总线为与存储器装置200的单独输入/输出。
图3图解说明包括非易失性存储器单元串联串的NAND架构存储器阵列的一部分的示意图。尽管后续论述是指NAND存储器装置,但本发明实施例并不限于此架构。
所述存储器阵列包括布置成若干列(例如串联串304、305)的非易失性存储器单元301(例如,浮动栅极)阵列。单元301中的每一者漏极到源极地耦合于每一串联串304、305中。横跨多个串联串304、305的字线WL0到WL31连接到一行中的每一存储器单元的控制栅极以偏置所述行中的存储器单元的控制栅极。位线BL1、BL2最终连接到感测放大器(未展示),所述感测放大器通过感测特定位线上的电流来检测每一单元的状态。
每一存储器单元串联串304、305通过源极选择栅极316、317耦合到源极线306,且通过漏极选择栅极312、313耦合到个别位线BL1、BL2。源极选择栅极316、317由耦合到其控制栅极的源极选择栅极控制线SG(S)318控制。漏极选择栅极312、313由漏极选择栅极控制线SG(D)314控制。
每一存储器单元可被编程为单电平单元(SLC)或多电平单元(MLC)。每一单元的阈值电压(Vt)指示存储于所述单元中的数据。举例来说,在SLC中,0.5V的Vt可指示经编程单元,而-0.5V的Vt可指示经擦除单元。所述MLC可具有多个Vt窗,每一窗指示一不同状态。多电平单元可通过将位模式指派给存储于所述单元上的特定电压范围来利用传统快闪单元的模拟性质。取决于指派给所述单元的电压范围的数量,此技术准许每单元存储两个或两个以上位。
图4图解说明固态存储器装置(例如图1的固态驱动器)中的FTL方法的一个实施例的流程图。尽管所述FTL方法是根据图1的固态驱动器进行描述,但需要转换层的其它存储器装置也可使用此方法。
当最初给所述固态驱动器通电之后,对所述固态驱动器中的所有存储器装置进行调查401以确定其存在及位置特性(例如,信道、芯片启用、逻辑单元、平面)。跨越所有通信信道及芯片启用枚举所述装置。依序由通信信道、CE、逻辑单元(LUN)及并行单元的平面产生并行单元查找表(PULT)403。此初始化设置固有并行存取方案,其利用跨越通信信道的带宽作为最高优先级,并利用并行单元平面作为最低优先级。在其它实施例中,由于特定架构需求,PU可与平面、CE或LUN一起排序为最高优先级。
在一个实施例中,将PULT存储于存储器装置的块0中。块0通常是已被测试为无错误的存储器块。替代实施例可将PULT存储于RAM或某一其它存储器位置中。
图5中图解说明此表的实例。此图展示在对所述装置的初始调查之后,将八个信道、两个芯片启用、一个LUN及两个平面枚举于所述表中。
图6图解说明由FTL产生的表的替代实施例,其中在初始化例程期间未找到NAND装置。此图展示通信信道3/CE1遗漏,从而导致两个平面601、602的丢失。除了仅找到30个PU以外,仍以与图5的实施例相同的方式填充PULT。
在填充PULT之后,所述FTL准备好从主机系统接收扇区请求。由于固态驱动器仿效包括若干扇区的硬驱动器,因此本发明实施例的FTL能够从主机计算机系统接收扇区指示(例如扇区编号)且存取存储器中的适当位置。来自主机的扇区编号可呈读取命令或写入命令的形式。FTL或某一其它固态驱动器算法负责擦除及耗损平均,使得这些操作对主机透明。
来自主机的扇区请求包括扇区编号连同命令(例如,读取、写入)。FTL在存取固态驱动器时使用所述扇区编号作为逻辑块地址(LBA)。在一个实施例中,每一NAND页线性地存储八个数据LBA。由于FTL根据LBA而非硬驱动器扇区进行处理,因此后续论述将参考来自主机的LBA请求而非扇区请求。
再次参考图4的流程图,当从主机接收到LBA请求时,FTL首先确定LBA在固态装置中的PU位置405。在所图解说明的实施例中,此使用模算术函数来实现。
所述模函数表达为(Q,R)=MOD(LBA>>(j=3),N),其中Q是用于后续计算中的商,R是来自模运算的余数,且N是在PULT的初始化期间所找到的PU的数量。举例来说,图5的实施例找到32个PU而图6的实施例找到30个PU。
所述模函数展示将从主机接收的LBA向右移位三个位置以计及每页的八个LBA。如此项技术中众所周知,向右移位为三次的数目等效于除以八。响应于固态装置中的较大扇区大小(即,较大NAND页)而改变向右移位的数目。此可表达为j=2j个LBA/页,向右移位了j。
随后将PU的数目N表达为二进制数。然而,N不仅限于二进制数。
随后描述以上模函数在从所接收的LBA找到PU时的两个运算实例。如在图6的实施例中所图解说明,这些实例基于遗漏两个PU的PULT。换句话说,以下实例假定N=30。
在第一实例中,所接收的LBA=3,其以二进制表示为:
00000000 00000000 00000000 00000011
当三次向右移位LBA时,丢弃右边三个位且结果为0。所述模函数表达为(0,0)=MOD(0,30)。使用余数R=0作为PU索引,将此数用于PULT中以根据通信信道、芯片启用(CE)、逻辑单元(LUN)及PU平面数来确定LBA的位置。参考图6,可看出PULT[0]=信道0、CE 0、LUN 0及平面0是LBA的位置3。
在第二实例中,所接收的LBA=30,500,129。此LBA以二进制表示为:
00000001 11010001 01100101 00100001
当三次向右移位LBA时,最右边的“001”脱离从而产生以下二进制表达:
00000000 00111010 00101100 10100100
换句话说,LBA>>3=3,812,516。接着将模函数表达为(127083,26)=MOD(3812516,30)。由于余数为26,因此此用作PULT的索引。因此,再次参考6,可看出PULT[26]=信道4、CE 1、LUN 0及平面1是LBA=30,500,129的位置。八或八以上的LBA增量在算法上推到下一PU。
一旦找到PU,就产生数据块查找表(DBLT)407。所述DBLT为直接存取表,其指示哪些LBA群组存储于特定PU上的哪一存储器块中。DBLT中的每一条目指示所接收的LBA的块数目。DBLT中的条目的数目等于在构建PULT期间所找到的PU的数目乘以每PU的块数目。举例来说,如果固态驱动器包括256个PU(8个信道、8个CE、2个LUN及2个平面)且每平面存在2048个块,那么DBLT包括524,288条目。
在一个实施例中,DBLT中的每一条目包括四个字节,使得表为2,097,152个字节。每一条目的两个字节为特定PU中的块数目。另一字节为所述块的经最高程度编程的页的指示,以允许对嵌入式页表的快速存取。最后一个字节为可用来指示所指示的块的状况的状态字节。举例来说,无论所述块是有序的、需要折叠或已折叠的,所述状态字节均可指示所述块的经擦除状况。本发明各实施例不限于DBLT条目的此格式。
DBLT是使用来自如先前所论述的PULT计算的(Q,R)而产生。如果将k定义为2k=页/存储器块,那么DBLT[索引]=(R*块/PU)+(Q>>k)。k变量是响应于存储器块的存储器密度而确定的。对于MLC存储器装置中的512字节LBA,在每块128个页时k=7。对于SLC存储器装置中的512字节LBA,在每块64个页时k=6。所得DBLT[索引]指向含有LBA的目标存储器块。
在DBLT[索引]方法的运算的实例中,使用来自先前所论述的PULT实例的相同变量。在其中LBA=3的实例中,结果是Q=0,R=0,PULT[0]=信道0、CE 0、LUN 0及平面0。将这些结果插入到DBLT方法中导致DBLT[索引]=(Q>>k+R*2048)=0。如果DBLT的状态字节展示块已经排序,那么目标存储器块上的LBA是页(Q=0 && k位)=0,所述页中的位置(LBA && J)=3。如果所述状态字节展示存储器块未经排序,那么使用用于存储器块中的位置的嵌入式页表。
在其中LBA=30,500,138的实例中,结果是Q=127,083,R=26,PULT[26]=信道4、CE 1、LUN 0及平面1。将这些结果插入到DBLT方法中导致DBLT[索引]=(127,083>>6+26*2048)=55,233。如果DBLT的状态字节展示存储器块已经排序,那么目标存储器块上的LBA是页(11111000001 101011 && 00111111)=43且在所述页中的位置(11111000001 00100001 && 0000011)=1。
图7图解说明突出先前所论述的DBLT方法的结果的图示。所述图示的左侧展示指派给每一PU编号的存储器块701。举例来说,此图示展示PU0具有BLK0到BLK2047且介于0到2047的逻辑存储器范围中。
图示的中心702展示PU0的具有物理块0到2047的扩充,其中展示进一步扩充物理块i 703。物理块i的扩充展示块(假定SLC存储器装置)内的64个页中的每一者,且每一条目是一逻辑块。每一条目的两个字节指向一物理块,一个字节是所述块的经最高程度编程的页,且剩余字节是状态字节。
结论
总的来说,所述转换层方法的一个或一个以上实施例为固态存储装置提供将从主机计算机系统接收的硬磁盘扇区编号转换为存储器页及所述页内的位置的能力。此可大大减少在先前技术中通常用于转换的大的存储器密集转换表。所述转换层支持软磁盘驱动器扇区大小、页大小、每块的页、每平面的块、每逻辑单元的平面以及信道及芯片启用的非二进制数。
虽然本文已图解说明及描述了若干具体实施例,但所属领域的技术人员将了解,旨在实现相同目的的任何布置均可替代所展示的具体实施例。所属领域的技术人员将明了本发明的许多修改。因此,本申请案打算涵盖本发明的任何修改或变化形式。明确意图是本发明仅由以上权利要求书及其等效内容限制。
Claims (20)
1.一种用于在扇区指示与固态装置中的存储器位置之间进行转换的方法,所述方法包括:
枚举构成所述固态装置的存储器装置及每一存储器装置位置;
响应于所述扇区指示及所述存储器装置位置而确定所述存储器装置的目标存储器装置;及
响应于确定所述目标存储器装置及所述目标存储器装置的存储器密度而确定所述目标存储器装置中的目标数据块及所述存储器位置。
2.根据权利要求1所述的方法,且其进一步包含从主机计算机系统接收所述扇区指示。
3.根据权利要求1所述的方法,其中枚举所述存储器装置及所述存储器装置位置包括确定所述存储器装置中的每一者的通信信道、芯片启用、逻辑单元及平面。
4.根据权利要求1所述的方法,且其进一步包括产生所述存储器装置及所述存储器装置位置的表。
5.根据权利要求1所述的方法,且其进一步包括:
接收包含硬磁盘驱动器的扇区编号的所述扇区指示;
调查固态驱动器以找出存储器装置及每一存储器装置位置特性;
通过存储器装置枚举用相应存储器装置特性填充存储器装置表;及
产生包括哪些扇区指示被存储于所述目标存储器装置中的指示的数据块查找表。
6.根据权利要求5所述的方法,其中调查所述固态驱动器包括确定每一存储器装置的通信信道、芯片启用、逻辑单元及平面。
7.根据权利要求6所述的方法,其中填充所述存储器装置表包括给每一存储器装置指派唯一识别符。
8.根据权利要求5所述的方法,其中每一存储器装置表条目包括通信信道信息、芯片启用信息、逻辑单元信息、存储器装置平面信息及存储器装置状态信息。
9.根据权利要求5所述的方法,其中针对每一存储器装置依序填充所述存储器装置表,使得所述通信信道在所述表中具有最高优先级且所述平面在所述表中具有最低优先级。
10.根据权利要求1所述的方法,其中在所述扇区指示与所述存储器位置之间进行转换包含在逻辑块地址(LBA)与所述存储器位置之间进行转换,所述方法进一步包括:
从主机系统接收所述逻辑块地址;
在所述固态装置的初始化期间调查所述固态装置以找到多个并行单元及其位置特性;
通过存储器装置枚举产生并行单元查找表,其中所述并行单元查找表包括与每一并行单元相关联的位置特性;
响应于所述逻辑块地址与所述多个并行单元的数量的模函数而确定与所述逻辑块地址相关联的并行单元;及
响应于所述模函数而产生指示目标并行单元的哪一存储器块包括所述逻辑块地址的数据块查找表。
11.根据权利要求10所述的方法,其中所述模函数包括(Q,R)=MOD(LBA>>(j=3),N),其中Q为商,R为余数,N为所述并行单元查找表中的并行单元的数目,且j=2j个扇区/页。
12.根据权利要求11所述的方法,其中通过R索引所述并行单元查找表以确定与R并行单元相关联的所述位置特性。
13.根据权利要求11所述的方法,其中通过(R*块/PU)+(Q>>k)产生所述数据块查找表,其中块/PU是每一并行单元中的存储器块的数目,且k指示存储器中每存储器块的页数目。
14.根据权利要求13所述的方法,其中在每块64个页时,k=6,且在每块128个页时,k=7。
15.一种固态存储器装置,其包括:
至少一个存储器阵列;
控制器,其经由至少一个通信信道耦合到所述至少一个存储器阵列,所述控制器经配置以响应于以下各项而在磁盘驱动器扇区指示与存储器位置之间进行转换:枚举所述至少一个存储器阵列及每一存储器阵列位置、响应于所述扇区指示及所述存储器阵列位置而确定所述至少一个存储器阵列的目标存储器阵列,及响应于确定所述目标存储器阵列及所述目标存储器阵列的存储器密度而确定所述目标存储器阵列中的目标数据块及所述存储器位置。
16.根据权利要求15所述的固态存储器装置,其中多个存储器阵列耦合到多个通信信道的第一通信信道,且所述多个通信信道中的每一者耦合到所述控制器。
17.根据权利要求15所述的固态存储器装置,其中所述控制器进一步经配置以产生枚举以下各项的存储器阵列查找表:每一存储器阵列的通信信道、每一存储器阵列的芯片启用、每一存储器阵列的逻辑单元及每一存储器阵列的平面。
18.根据权利要求17所述的固态存储器装置,其中所述控制器经配置以按通信信道、芯片启用、逻辑单元及平面的次序产生所述存储器阵列查找表。
19.根据权利要求15所述的固态存储器装置,其中所述控制器进一步经配置以响应于模函数的执行而产生指示所述至少一个存储器阵列中的所述存储器位置的数据块查找表。
20.根据权利要求15所述的固态存储器装置,且其进一步包括多个通信信道,每一通信信道耦合到多个NAND封装。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/250,043 | 2008-10-13 | ||
US12/250,043 US8838876B2 (en) | 2008-10-13 | 2008-10-13 | Translation layer in a solid state storage device |
PCT/US2009/058343 WO2010044999A2 (en) | 2008-10-13 | 2009-09-25 | Translation layer in a solid state storage device |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102177556A true CN102177556A (zh) | 2011-09-07 |
CN102177556B CN102177556B (zh) | 2014-04-09 |
Family
ID=42099944
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200980140472.4A Active CN102177556B (zh) | 2008-10-13 | 2009-09-25 | 固态存储装置中的转换层 |
Country Status (7)
Country | Link |
---|---|
US (4) | US8838876B2 (zh) |
EP (1) | EP2345037B1 (zh) |
JP (2) | JP2012505472A (zh) |
KR (1) | KR101418631B1 (zh) |
CN (1) | CN102177556B (zh) |
TW (1) | TWI563382B (zh) |
WO (1) | WO2010044999A2 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105786406A (zh) * | 2016-02-26 | 2016-07-20 | 湖南国科微电子股份有限公司 | 支持多通道主控并发的CE NAND Flash的页模型构建方法及页模型 |
CN106598877A (zh) * | 2015-10-15 | 2017-04-26 | 爱思开海力士有限公司 | 存储器系统及该存储器系统的操作方法 |
CN109597565A (zh) * | 2017-09-30 | 2019-04-09 | 北京忆恒创源科技有限公司 | 虚拟Plane管理 |
Families Citing this family (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101574540B1 (ko) * | 2009-04-15 | 2015-12-07 | 삼성전자주식회사 | 데이터 저장 장치 및 이를 포함하는 데이터 저장 시스템 |
WO2011021237A1 (en) * | 2009-08-20 | 2011-02-24 | Hitachi,Ltd. | Storage subsystem and its data processing method |
US9753847B2 (en) * | 2009-10-27 | 2017-09-05 | Western Digital Technologies, Inc. | Non-volatile semiconductor memory segregating sequential, random, and system data to reduce garbage collection for page based mapping |
US8458435B1 (en) | 2010-12-20 | 2013-06-04 | Western Digital Technologies, Inc. | Sequential write thread detection |
US9514838B2 (en) * | 2011-05-31 | 2016-12-06 | Micron Technology, Inc. | Apparatus including memory system controllers and related methods for memory management using block tables |
US10502584B1 (en) | 2012-12-28 | 2019-12-10 | Sean Patrick Suiter | Mission monitor and controller for autonomous unmanned vehicles |
US20140343765A1 (en) | 2012-12-28 | 2014-11-20 | Sean Patrick Suiter | Flight Assistant with Automatic Configuration and Landing Site Selection |
US9821910B1 (en) * | 2015-05-19 | 2017-11-21 | uAvionix Corporation | Unmanned vehicle control system and apparatus |
US10445229B1 (en) | 2013-01-28 | 2019-10-15 | Radian Memory Systems, Inc. | Memory controller with at least one address segment defined for which data is striped across flash memory dies, with a common address offset being used to obtain physical addresses for the data in each of the dies |
US9652376B2 (en) | 2013-01-28 | 2017-05-16 | Radian Memory Systems, Inc. | Cooperative flash memory control |
US11249652B1 (en) | 2013-01-28 | 2022-02-15 | Radian Memory Systems, Inc. | Maintenance of nonvolatile memory on host selected namespaces by a common memory controller |
US11657721B1 (en) | 2013-08-26 | 2023-05-23 | Otto Aero Company | Aircraft with flight assistant |
JP6072661B2 (ja) * | 2013-09-30 | 2017-02-01 | ルネサスエレクトロニクス株式会社 | データ処理装置、マイクロコントローラ、及び半導体装置 |
US20160062696A1 (en) * | 2014-03-26 | 2016-03-03 | 2419265 Ontario Limited | Solid-state memory device with plurality of memory devices |
US20160011810A1 (en) * | 2014-03-26 | 2016-01-14 | 2419265 Ontario Limited | Solid-state memory device with plurality of memory devices |
US9542118B1 (en) | 2014-09-09 | 2017-01-10 | Radian Memory Systems, Inc. | Expositive flash memory control |
US9607447B2 (en) * | 2015-03-31 | 2017-03-28 | Honeywell International Inc. | Automated transmission of aircraft anomalous incident data via preferred transmission modes |
US10552058B1 (en) | 2015-07-17 | 2020-02-04 | Radian Memory Systems, Inc. | Techniques for delegating data processing to a cooperative memory controller |
US10121555B2 (en) * | 2016-05-26 | 2018-11-06 | Advanced Micro Devices, Inc. | Wear-limiting non-volatile memory |
US10642497B2 (en) * | 2016-08-31 | 2020-05-05 | International Business Machines Corporation | System, method and computer program product for instantiating blocks of a solid-state disk to include different flash characteristics |
EP3724768A4 (en) * | 2017-12-13 | 2021-07-21 | Micron Technology, Inc. | ADDRESSING VARIABLE WIDTH SUPERBLOCKS |
JP7077151B2 (ja) * | 2018-06-06 | 2022-05-30 | キオクシア株式会社 | メモリシステム |
KR102438064B1 (ko) | 2018-08-31 | 2022-08-30 | (주)커니스 | 로라 네트워크 스타 토폴로지를 이용한 메쉬 알고리즘 기반의 밀폐 공간 작업자 안전 관리 시스템 |
KR102438063B1 (ko) | 2018-08-31 | 2022-08-30 | (주)커니스 | 로라 네트워크 멀티 채널을 이용한 밀폐공간 작업자 안전 관리 시스템 |
Family Cites Families (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4737909A (en) * | 1985-04-01 | 1988-04-12 | National Semiconductor Corp. | Cache memory address apparatus |
EP0508577A1 (en) * | 1991-03-13 | 1992-10-14 | International Business Machines Corporation | Address translation mechanism |
JPH07302176A (ja) * | 1994-05-09 | 1995-11-14 | Toshiba Corp | 半導体ディスク装置 |
JPH08212019A (ja) * | 1995-01-31 | 1996-08-20 | Mitsubishi Electric Corp | 半導体ディスク装置 |
JP3197815B2 (ja) * | 1996-04-15 | 2001-08-13 | インターナショナル・ビジネス・マシーンズ・コーポレ−ション | 半導体メモリ装置及びその制御方法 |
US6260102B1 (en) * | 1996-12-26 | 2001-07-10 | Intel Corporation | Interface for flash EEPROM memory arrays |
US5822251A (en) * | 1997-08-25 | 1998-10-13 | Bit Microsystems, Inc. | Expandable flash-memory mass-storage using shared buddy lines and intermediate flash-bus between device-specific buffers and flash-intelligent DMA controllers |
US5937425A (en) * | 1997-10-16 | 1999-08-10 | M-Systems Flash Disk Pioneers Ltd. | Flash file system optimized for page-mode flash technologies |
US7660941B2 (en) * | 2003-09-10 | 2010-02-09 | Super Talent Electronics, Inc. | Two-level RAM lookup table for block and page allocation and wear-leveling in limited-write flash-memories |
US7953931B2 (en) * | 1999-08-04 | 2011-05-31 | Super Talent Electronics, Inc. | High endurance non-volatile memory devices |
US7886108B2 (en) * | 2000-01-06 | 2011-02-08 | Super Talent Electronics, Inc. | Methods and systems of managing memory addresses in a large capacity multi-level cell (MLC) based flash memory device |
JP2001142774A (ja) * | 1999-11-11 | 2001-05-25 | Toshiba Corp | メモリカード及び同カードに適用されるアドレス変換方法 |
US6377500B1 (en) * | 1999-11-11 | 2002-04-23 | Kabushiki Kaisha Toshiba | Memory system with a non-volatile memory, having address translating function |
US8341332B2 (en) * | 2003-12-02 | 2012-12-25 | Super Talent Electronics, Inc. | Multi-level controller with smart storage transfer manager for interleaving multiple single-chip flash memory devices |
US6425051B1 (en) * | 2000-09-25 | 2002-07-23 | International Business Machines Corporation | Method, system, program, and data structures for enabling a controller accessing a storage device to handle requests to data in a first data format when the storage device includes data in a second data format |
US7013376B2 (en) * | 2000-12-20 | 2006-03-14 | Hewlett-Packard Development Company, L.P. | Method and system for data block sparing in a solid-state storage device |
US7472231B1 (en) * | 2001-09-07 | 2008-12-30 | Netapp, Inc. | Storage area network data cache |
JP3822081B2 (ja) | 2001-09-28 | 2006-09-13 | 東京エレクトロンデバイス株式会社 | データ書込装置、データ書込制御方法及びプログラム |
US7653777B2 (en) * | 2004-01-19 | 2010-01-26 | Trek Technology (Singapore) Pte Ltd. | Portable data storage device using a memory address mapping table |
US7421537B2 (en) * | 2004-03-22 | 2008-09-02 | Intel Corporation | Migrating data between storage volumes |
US7490283B2 (en) * | 2004-05-13 | 2009-02-10 | Sandisk Corporation | Pipelined data relocation and improved chip architectures |
US8429313B2 (en) * | 2004-05-27 | 2013-04-23 | Sandisk Technologies Inc. | Configurable ready/busy control |
US20060044934A1 (en) * | 2004-09-02 | 2006-03-02 | Micron Technology, Inc. | Cluster based non-volatile memory translation layer |
SG130988A1 (en) * | 2005-09-29 | 2007-04-26 | Trek 2000 Int Ltd | Portable data storage device incorporating multiple flash memory units |
US7882320B2 (en) | 2006-05-23 | 2011-02-01 | Dataram, Inc. | Multi-processor flash memory storage device and management system |
KR100806343B1 (ko) * | 2006-10-19 | 2008-02-27 | 삼성전자주식회사 | 플래시 메모리를 포함한 메모리 시스템 및 그것의 맵핑테이블 관리 방법 |
KR100881052B1 (ko) * | 2007-02-13 | 2009-01-30 | 삼성전자주식회사 | 플래시 메모리의 매핑 테이블 검색 시스템 및 그에 따른검색방법 |
US8775717B2 (en) * | 2007-12-27 | 2014-07-08 | Sandisk Enterprise Ip Llc | Storage controller for flash memory including a crossbar switch connecting a plurality of processors with a plurality of internal memories |
JP4987962B2 (ja) * | 2008-02-29 | 2012-08-01 | 株式会社東芝 | 情報処理装置及び不揮発性半導体メモリドライブ |
US7945752B1 (en) * | 2008-03-27 | 2011-05-17 | Netapp, Inc. | Method and apparatus for achieving consistent read latency from an array of solid-state storage devices |
-
2008
- 2008-10-13 US US12/250,043 patent/US8838876B2/en active Active
-
2009
- 2009-09-25 KR KR1020117008351A patent/KR101418631B1/ko active IP Right Grant
- 2009-09-25 JP JP2011531060A patent/JP2012505472A/ja active Pending
- 2009-09-25 EP EP09820984.4A patent/EP2345037B1/en active Active
- 2009-09-25 CN CN200980140472.4A patent/CN102177556B/zh active Active
- 2009-09-25 WO PCT/US2009/058343 patent/WO2010044999A2/en active Application Filing
- 2009-10-09 TW TW098134429A patent/TWI563382B/zh active
-
2013
- 2013-11-20 JP JP2013239909A patent/JP5736439B2/ja active Active
-
2014
- 2014-08-25 US US14/467,322 patent/US8966165B2/en active Active
-
2015
- 2015-02-05 US US14/614,623 patent/US9176868B2/en active Active
- 2015-10-01 US US14/872,455 patent/US9405679B2/en active Active
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106598877A (zh) * | 2015-10-15 | 2017-04-26 | 爱思开海力士有限公司 | 存储器系统及该存储器系统的操作方法 |
CN105786406A (zh) * | 2016-02-26 | 2016-07-20 | 湖南国科微电子股份有限公司 | 支持多通道主控并发的CE NAND Flash的页模型构建方法及页模型 |
CN109597565A (zh) * | 2017-09-30 | 2019-04-09 | 北京忆恒创源科技有限公司 | 虚拟Plane管理 |
CN109597565B (zh) * | 2017-09-30 | 2024-04-05 | 北京忆恒创源科技股份有限公司 | 虚拟Plane管理 |
Also Published As
Publication number | Publication date |
---|---|
KR20110071091A (ko) | 2011-06-28 |
US8838876B2 (en) | 2014-09-16 |
US9405679B2 (en) | 2016-08-02 |
TW201022938A (en) | 2010-06-16 |
JP5736439B2 (ja) | 2015-06-17 |
JP2014063511A (ja) | 2014-04-10 |
US9176868B2 (en) | 2015-11-03 |
WO2010044999A2 (en) | 2010-04-22 |
JP2012505472A (ja) | 2012-03-01 |
US20150149712A1 (en) | 2015-05-28 |
TWI563382B (en) | 2016-12-21 |
EP2345037B1 (en) | 2017-04-19 |
US20160026564A1 (en) | 2016-01-28 |
WO2010044999A3 (en) | 2010-07-01 |
KR101418631B1 (ko) | 2014-07-14 |
EP2345037A2 (en) | 2011-07-20 |
CN102177556B (zh) | 2014-04-09 |
US8966165B2 (en) | 2015-02-24 |
US20140365720A1 (en) | 2014-12-11 |
EP2345037A4 (en) | 2013-01-16 |
US20100095084A1 (en) | 2010-04-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102177556B (zh) | 固态存储装置中的转换层 | |
CN102187398B (zh) | 固态存储装置中的热存储器块表 | |
CN102165409B (zh) | 具有扩充模式的固态存储装置控制器 | |
CN102165532B (zh) | 具有并行操作模式的固态存储装置控制器 | |
CN102087878A (zh) | 闪速存储器件及其编程方法 | |
TW201442032A (zh) | 資料寫入方法、記憶體控制器與記憶體儲存裝置 | |
CN111158579A (zh) | 固态硬盘及其数据存取的方法 | |
CN110287130A (zh) | 存储装置及其操作方法 | |
CN114078530A (zh) | 存储器装置及其操作方法 | |
CN110413219A (zh) | 存储器控制器、存储器系统及其操作方法 | |
US11474726B2 (en) | Memory system, memory controller, and operation method thereof | |
US9507706B2 (en) | Memory system controller including a multi-resolution internal cache | |
US11573715B2 (en) | Memory cell level assignment using optimal level permutations in a non-volatile memory | |
US20240071505A1 (en) | Dynamic latches above a three-dimensional non-volatile memory array | |
US20240069776A1 (en) | Super block management for efficient utilization | |
CN112306386A (zh) | 存储装置及其操作方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |