CN104520932A - 闪存存储器控制器 - Google Patents
闪存存储器控制器 Download PDFInfo
- Publication number
- CN104520932A CN104520932A CN201380026317.6A CN201380026317A CN104520932A CN 104520932 A CN104520932 A CN 104520932A CN 201380026317 A CN201380026317 A CN 201380026317A CN 104520932 A CN104520932 A CN 104520932A
- Authority
- CN
- China
- Prior art keywords
- data
- order
- write
- flash memories
- read
- 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
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
- 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/0207—Addressing or allocation; Relocation with multidimensional access, e.g. row/column, matrix
-
- 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/0215—Addressing or allocation; Relocation with look ahead addressing means
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
Abstract
管理多个闪存(FLASH)芯片的操作的设备和方法提供到具有多个闪存芯片的闪存存储器电路的物理层(PHY)接口,所述多个闪存芯片具有公共接口总线。设备具有用于根据微编程状态机来控制接口管脚上的电压的PHY。在总线上的在进行中的数据传输可被中断以对共享总线上的另一芯片执行另一命令,且所述数据传输可在所述另一命令完成之后重新开始。
Description
本申请要求2012年5月23日提交的US 61/650,604和2013年3月15日提交的US 13/833,643的权益,这两个申请通过引用被并入本文。
技术领域
本申请可涉及在计算机存储器系统中的数据的存储。
背景技术
NAND闪存(FLASH)存储器在电学上被组织为管芯(芯片)上的多个块,且多个管芯可合并到封装中,封装可称为闪存存储器电路。芯片可具有多于一个平面,以便对擦除、写和读操作是可单独处理的。块由多个页组成,且页由多个扇区组成。这个术语集合中的一些术语是来自硬盘驱动器(HDD)技术的遗产;然而,如在闪存存储器装置中使用的,一些适应被做出。NAND闪存存储器特征在于,数据可被写到存储器的扇区,或包括页的一组连续扇区。页可在块内按次序被写入,但如果页被省略,则当前的技术不许可写到省略的页,直到整个块已被擦除为止。这与磁盘存储器相反,其中对在存储器位置中的数据的改变可通过写到该位置来做出,而不考虑位置的以前状态。块是可被擦除的闪存存储器的最小盘区,且块必须在被写(编程)有数据之前被擦除。
NAND闪存的较早版本具有顺序地写到页的扇区的能力,且数据可在扇区基础上被写入,其中管芯体系结构许可这完成。更近一些,存储器电路制造商正在发展装置体系结构,使得数据的一页或多页可在写操作中被写入。这包括其中管芯具有两个平面且平面可被同时写入的实现。所有这些都通过陈述对读取或写入数据的特定约束来可能是装置相关的,但本文公开的总体方法可容易被本领域中的技术人员改编,以便容纳特定的装置特征。在闪存存储器中的术语“擦除”和“写”具有下列特性:当擦除或写操作在进行中时,闪存存储器芯片的平面(操作在该平面上被执行)不可用于对芯片的平面中的任何位置的“读操作”。
常常通过术语扇区、页和块来描述所存储的用户数据,但存在也被存储且必须被容纳在总体存储器系统设计中的附加内务处理数据。辅助数据(例如元数据、纠错码和以某种方式与所存储的数据有关的类似数据)常常被称为存储在“备用”区中。然而通常块的页或数据的块可稍微随意地被划分成可用于数据或用于辅助数据的物理存储器盘区。所以在用于数据和用于数据的块中的辅助数据的存储量中有一些灵活性,且这通过通常在与存储器芯片相关联或与包括存储器芯片的模块相关联的一个或多个控制器中的某种形式的操作系统抽象来管理。辅助数据被存储在可在扇区、页或块基础上分配的备用区中。
数据的读取、数据的写入的管理和背景操作(例如损耗均衡和垃圾收集)由系统控制器使用被称为闪存转换层(FTL)的抽象来执行,如用户所理解的,闪存存储器转换层将逻辑地址映射到数据值实际上被存储的存储器的物理地址。FTL的一般细节是本领域中的技术人员已知的,且不在本文被详细描述。FTL或等效形式的使用被假设,且这个讨论采用FTL的抽象相当于将用户数据的页的地址映射到物理存储器地址的观点。位置可以是块的页。这并不意在为限制,但这样的假设简化了本文的讨论。
为了支持平台上的新NAND闪存部件,常常要求主机软件和硬件改变。由于设计改变和测试周期,实现这些变化可能是昂贵的。接口特性中的一些接口特性已被标准化,一些接口特性在正被标准化的过程中,且一些接口特性因为存储器技术在容量、密度和速度上发展而对制造商是特别的。虽然当设计规则变得更小且每单元位的数量增加时从闪存存储器单元写和读的速度可降低,数据传输的速度可增加。
开放NAND闪存接口(ONFI)工作组(一个工业协会)已经发布了ONFI NAND v 1.0规范,其限定50MT/s传输速率,超过遗产NAND 40MT/s传输速率的20%提高。在第二代(ONFI 2.2)中,引入异步单数据速率版本,其具有50MT/s最大传输速度,而同步DDR版本的最大传输速度增加到200MT/s。在最近宣布的规范(ONFI 2.3)中,引入新纠错NAND(ECC零NAND),其中NAND装置执行纠错并向主机提供校正的数据。该规范包括MLC和SLC NAND两者,并限定单数据速率异步装置和具有匹配ONFI v 2.2的数据传输速度的数据传输速度的双数据速率同步装置。具有400MT/s的目标接口速度的ONFI v 3.0已经被宣布。
每秒兆传输率(MT)指每秒数据传输(或数据样本)的数量,其中每一个样本出现在时钟边缘处。在双数据速率系统中,数据在时钟信号的上升沿和下降沿上都被传输。这通常被考虑为标称速率并可在实践中变化。
具有从三星(Samsung)和东芝(Toshiba)可得到的产品的切换模式NAND是没有分开的时钟信号的异步双数据速率(DDR)NAND设计。这个接口可使能比一般同步双数据速率存储器芯片更低功率的解决方案,并可保留与较老的NAND接口设计的接口相似性。
JEDEC也试图编造关于标准接口的协定。然而,NAND闪存存储器技术的快速发展暗示将继续有可用的多种“非标准”部件,特别是对于强调技术的方面的新产品。
因为它使用与在常规NAND中使用的接口类似的异步接口,所以东芝DDR切换模式NAND例如不要求时钟信号,这意味着它与竞争的同步NAND替换比较使用更少的功率且具有更简单的系统设计。标称数据传输速度可高达400 MT/s。控制在切换模式NAND中的读和写使能功能的双向DQS信号只在读或写操作期间消耗功率。在同步DDR NAND中,时钟信号是连续的,且常常使用更多的功率。
DDR切换模式NAND接口使用双向DQS(数据选通脉冲)信号来控制数据接口定时。DQS信号在它将数据写到NAND存储器时由主机驱动,并在NAND存储器发送到主机时由NAND存储器驱动。DQS信号的每一个上升沿和下降沿与数据传输相关联。DQS信号可被认为是“源同步的”。也就是说,DQS信号由作为数据的来源的装置提供。
被写入的数据页的大小持续增加,其中8KB页在今天是普遍的,且16KB页正被讨论。只要全页传输被使用,传输效率就被实现。然而,今天的大部分应用依赖于部分页读取来最小化传输开销。正被包括在封装中的芯片的数量持续增加,使得单个装置的总容量较大。然而,在给定大小的装置上的管脚的数量是有限的,且因此在封装中的芯片的功能中的一些功能可能需要由多路装置控制。这可包括芯片使能功能。有效地,存储器密度的增加正用恒定数量的接口管脚来实现,所以对每一个管脚的吞吐量的要求显著更大。
尽管如此,由于过程节点大小的减小和存储在每一个存储器芯片或多芯片封装中的位的数量的增加,程序时间、读取时间和对纠错码鲁棒性的需要都显示增加的趋势。在这个意义上,NAND闪存存储器目前在不是半导体技术特有的方向上发展。
为了这个说明书的目的,NAND存储器芯片的体系结构和这样的存储器芯片到封装内的聚集一般被讨论,因为在可得到的产品之间存在细节上的很多变化,且这可能持续一些时间。
发明内容
公开了使用闪存存储器的存储系统,其在与闪存存储器电路通信并操作闪存存储器电路中使用高程度的并行性,以便使相对慢的闪存芯片的操作适于期望较低时延的应用。并行性使用连接到多个闪存存储器装置的多个物理信令信道来以双向方式实现,其中当多个芯片(DIE)被包括在每一个闪存存储器装置中时可能有附加级别的并行性。并发性要求可导致多个装置和装置类型(PHY、存储器封装和DIE)同时处理访问命令。
当长数据传输占据信道时,共享物理信令信道呈现命令发布的瓶颈。这样的长数据传输可以是可中断的,而不失去原始命令上下文以许可命令被发布到其它装置以保持它们忙碌。
使用可中断微码状态机引擎描述了闪存控制器装置以提供这些特征。
公开了用于存储数字数据的设备,其具有:控制器;闪存存储器控制器,闪存存储器控制器与控制器通信并具有多个闪存存储器电路。在闪存存储器控制器和多个闪存存储器电路的闪存存储器电路之间的写数据传输是可中断的。在一个方面中,控制器和闪存存储器控制器可共享处理器和缓冲存储器。闪存存储器控制器可具有配置成管理与闪存存储器电路的通信的状态机。
闪存存储器电路可以是共享公共总线的多个闪存存储器芯片,当读命令由闪存存储器控制器接收并被引导到与写数据传输相同的闪存存储器电路时,在闪存存储器控制器和闪存存储器电路之间的写数据传输可以可重新开始是可中断的。
在一个方面中,写数据传输可以可重新开始是可中断的以轮询闪存存储器电路,以完成读命令。写数据传输可以可重新开始是可中断的以许可从闪存存储器电路的缓冲器到闪存存储器控制器传输已完成的读命令的结果。
描述了管理闪存存储器装置的方法,包括:提供可操作来管理读请求、写请求和与写请求相关联的数据的队列的处理器,将写请求和相关联数据传送到闪存存储器接口;将读请求发送到闪存存储器接口,以及确定到与读请求所识别的相同的存储器电路的写数据传输是否在进行中。
该方法还可包括中断写数据传输以将读请求发送到闪存存储器电路;重新开始写数据传输;等待执行读请求的估计时间;确定写数据传输是否在进行中;中断写数据传输;轮询存储器电路以确定在读缓冲器中是否有数据;以及如果数据在读缓冲器中,则将数据从读缓冲器传输到闪存存储器接口;以及重新开始以前中断的写数据传输。
在另一方面中,该方法可包括在传送写命令之前将写数据传送到闪存存储器装置。
在又另一方面中,用于与闪存存储器电路对接的设备可包括配置成使读和写命令及相关联的写数据排队并响应于读命令而接收数据的控制器,控制器适于与用户和与物理层接口(PHY)对接。PHY可具有状态机,其执行微代码程序并被配置成提供用于控制闪存存储器电路的信号,闪存存储器电路具有多个芯片并用于发送和接收命令和在闪存存储器电路总线接口上的数据。PHY可操作来中断到闪存存储器电路的数据传输以许可另一命令的执行并在另一命令完成之后重新开始数据传输。
数据传输可以具有被写到闪存存储器电路的芯片的数据,且另一命令可选自读命令、轮询命令或读数据传输命令,并被引导到闪存存储器电路。
附图说明
图1是示出共享公共总线的多个闪存存储器芯片(PHY)的存储器系统的方框图;
图2示出与PHY控制/状态总线通信的控制器;
图3示出PHY接口控制器的功能方框图;
图4示出PHY控制器的功能方框图;
图5示出命令接口状态图的示例;
图6示出FSM状态转变图的示例;
图7是微排序器的方框图的示例;
图8是PHY逻辑图的示例;以及
图9是一般DDR管脚输出宏和时序图的示例。
具体实施方式
参考附图可更好地理解示例性实施例,但这些实施例并不意在为具有限制性质。在同一或不同附图中的相同编号的元件执行等效的功能。元件可被编号或由首字母缩略词指定或这两者,且在表示之间的选择仅为了清楚而做出,使得由数字指定的元件和由首字母缩略词或字母数字指示符指定的同一元件不应在那个基础上被区分。
将认识到的是,所述方法和在附图中所示的装置可被配置或体现在机器可执行指令(例如软件)中或在硬件中或在两者的组合中。机器可执行指令可用于使作用于指令的通用计算机、专用处理器(例如DSP)或阵列处理器等执行本文描述的功能。可替换地,操作可能由可具有用于执行所述操作的硬连线逻辑或固件指令的特定的硬件部件或由可包括模拟电路的定制硬件部件和编程计算机部件的任何组合执行。
该方法可至少部分地被提供为可包括非易失性机器可读媒介的计算机程序产品,非易失性机器可读媒介具有存储在其上的可用于给计算机(或其它电子装置)编程以执行方法的指令。为了这个说明书的目的,术语“机器可读媒介”应被理解为包括任何媒介,其能够存储或编码指令序列或数据以供计算机器或专用硬件执行,并且其可使机器或专用硬件执行本发明的方法或功能中的任何一个。术语“机器可读媒介”应相应地被理解为包括但不限于固态存储器、光盘和磁盘、磁性存储器和光学存储器以及可为这样的目的发展的任何等效装置。
例如但不是作为限制,机器可读媒介可包括只读存储器(ROM);所有类型的随机访问存储器(RAM)(例如S-RAM、D-RAM、P-RAM);可编程只读存储器(PROM);电可变更只读存储器(EPROM);磁性随机访问存储器;磁盘存储介质;闪存存储器,其可以是NAND或NOR配置的;忆阻器;或电、光、声数据存储媒介等。易失性存储器装置(例如DRAM)可用于存储计算机程序产品,假定易失性存储器装置是具有电源的系统的部分,且电源或电池在时间段期间向电路提供功率,在该时间段期间,计算机程序产品被存储在易失性存储器装置上。
此外,当采取行动或引起结果时以一种形式或另一形式(例如程序、流程、过程、应用、模块、算法或逻辑)提到软件在本领域中是常见的。这样的措辞仅仅是说软件的指令由计算机或等效装置的执行使计算机或等效装置的处理器执行行动或产生结果的方便方式,如本领域中的技术人员公知的。
本领域中的技术人员将理解,除了在本文描述的情况以外的错误情况也可能出现,以及硬件和操作软件的设计将被执行以便解决这些情况。它们没有被描述或没有被详细描述,以便聚焦于装置和系统的突出方面。
多个NAND闪存存储器芯片可被组装在存储系统中。在可以是RAID控制器的存储器控制器和存储器芯片之间的接口可被配置成从读和写带宽方面提高系统的总性能,特别是当遇到随机地址序列时。也可提高部分页读取的有效性。在这里我们使用类似于在限定协议堆栈时通常使用的方法的被称为PHY接口的系统部件。PHY层是在装置(例如NAND闪存存储器芯片)和使用系统之间的接口。这等效于开放系统互连(OSI)协议的底层。
所描述的PHY体系结构便于多芯片闪存存储器模块的容量的有效使用。在图1中示出多芯片闪存存储器电路的方框图。这样的电路常常在适合于安装到印刷电路板的封装中被出售。然而,电路可用作将合并到另一电子封装中的未封装芯片。
每一个芯片可具有可能有益的至少下列状态。
擦除
读(从存储器单元到缓冲器)
读数据状态(在缓冲器中)
读数据(从缓冲器到PHY)
写(从缓冲器到存储器单元)
写状态(在缓冲器中或完成)
接收写数据(从PHY到缓冲器)
芯片使能(或禁用)。
芯片使能用于选择共享公共总线的多个芯片中的芯片,命令被呈送到该公共总线。在本例中,可假定主张适当的芯片使能线,且适当的命令已经被发送。在对命令的响应(如果有的话)已经由PHY层接收到之后,可撤销芯片使能。
存储器封装的各个芯片可执行操作或独立于彼此而改变状态。所以例如,如果芯片1已经被使能并被发送擦除命令,则芯片1将自动执行命令。虽然可能有中断擦除命令的条款,但为了介绍的简单,当前的讨论选择将在缓冲器和存储器之间的擦除和实际写或读操作处理为不可中断的。这并不意在为对本文讨论的主题的限制。
代替将特定的持续时间分配给操作的执行,可考虑芯片的突出操作可被描述为由Tr(从存储器到缓冲器读取整个页面)、Tt(整个页面通过共享总线的数据传输)、Tw(从缓冲器到存储器写整个页面)和Te(擦除块)参量化。状态检查操作被假定为在与上述操作比较可忽略的时间内完成。
一组闪存存储器芯片的有效操作涉及上面陈述的主要操作的相对时间成本和操作的特性(例如可中断或不可中断的)或部分页面操作是否被许可(例如读取页面的扇区)。
为了讨论的目的,可将参量化操作的时间叙述为大约1 Te= 3Tw = 10 Tt = 40 Tr。认识到Te只要求在总线上的命令的传输且没有数据,对擦除操作而言总线利用率是小的,但用来完成这样的操作的时间是各个操作类型中的任何一个操作类型中最大的。那并不是说擦除操作可在对系统没有影响的情况下被执行,因为对芯片的平面上的任何存储器位置页面做出的数据的请求将被延迟,直到Te结束为止,该芯片具有其被擦除的任何块。然而,在RAID存储器系统中掩蔽擦除操作的方法是已知的,如在2008年3月26日提交的标题为“Memory Management System
and Method”的US 12/079,364中描述的,该申请被共同拥有并通过引用被并入本文,且高性能系统可采用这样的技术。所以这里的焦点是由于共享公共数据传输总线而引起的时延的最小化以及通过总线的数据传输速率的优化。只提到几个示例,且用户将以与用于特别的产品的特定系统设计标准一致的方式来采用物理层(PHY)的容量。
当数据在整个页面中被写到存储器芯片时,用来完成操作的总时间是Tt+Tw;然而,总线仅针对Tt(对于当前可用的产品,是到芯片的写操作的总时间的大约1/3)被占据。因此,在本例中,假设连续写的数量大(例如10),大约3个数据页面可在平均时间期间通过总线被传送以将单个页面写到单个芯片。例如,10个页面可在l0Tt+Tw = 13 Tt而不是10 (Tt+Tw) + 40 Tt内被写入,即,大约三次,因为很多页面可被传送并在其它芯片之一正执行擦除操作的时间期间被写入(回忆起Te = 10 Tt 和Tw=3Tt)。
在另一方面中,读操作在写操作的误操作期间可以是期望的。这可能是由于任何原因,包括刷新存储器、垃圾收集或元数据维护。本文描述的PHY具有执行不同的命令的能力,即使当用于写入的总线传输出现时。也就是说,从PHY到选定芯片的写数据传输可暂停,且命令(例如读取)可被发布到既不在接收被写入的数据的过程中也不在块擦除的过程中的芯片。作为读命令的对象的芯片具有主张的芯片使能,并接收命令。芯片可例如执行读命令,同时写数据传输重新开始,或读命令被发送到另一芯片。重新开始的写数据传输可被中断多次以发布读命令,但最终完成最初发起的数据传输。写命令可被发布到芯片,使得装入芯片缓冲器中的数据可被存储到存储器单元。
一些闪存芯片可具有用于对存储器单元的立即访问的页缓冲器和用于与数据总线对接的数据高速缓存器。在这样的情况下,将被写到存储器单元的数据可从数据高速缓存器传输到页缓冲器,数据高速缓存器可接收另一页数据,同时前一页数据被写到存储器单元。
当总线不传输待写入的数据(或写数据传输已经被中断)时,以前接收读命令的芯片可被轮询以确定数据是已经从存储器单元被读到页缓冲器中还是在芯片数据高速缓冲器中是可用的。这个数据可通过总线传输到PHY,而没有实际读操作的时延,因为读命令已经被执行。虽然与Tw比较Tr是小的,但尽管如此可得到在时延中的改进。
本文描述的PHY的特性许可装置的适合,装置可以是ASIC、FPGA或其它电子电路以便与多种闪存芯片对接,闪存芯片可使用共享总线来合并到多芯片存储器电路中。ASIC、FPGA等也可执行控制器的功能,控制器可以是存储器控制器。用来管理数据传输的中断以便发布二次命令并接着重新开始数据传输的PHY的能力许可共享总线的使用的优化和时延的减小。
多个PHY接口可由共享命令总线协议控制并被布置为如图2所示。每一个PHY接口由图3所示的功能模块组成,所述功能模块将从控制器接收的功能命令转换成适合于被使用的特别的NAND 闪存产品的电信号序列。
当写命令从控制器被接收到时,且一般当数据正被编码以供传输时,公共控制FSM将所指示的PHY接口的命令结构建造到公共控制寄存器文件中。当写数据缓冲器对特别的PHY接口是完备的时,公共控制FSM主张到相关联的PHY的直接“命令未决”信号。PHY用“命令请求”做出响应,且在由其它PHY的操作引起的任何仲裁之后,公共控制寄存器文件发布被标记有“有效、索引和目的地”代码的PHY命令字节。
“目的地”代码选择特定的PHY。选定PHY接受命令结构并执行写命令。PHY请求来自当前连接的Tx缓冲器的数据。可根据PHY的数量、性能要求等来选择将PHY连接到控制器的特定的总线类型。在示例中,互连总线可以是时分复用(TDM)总线,且PHY只使用分配到所接收的写命令的TDM时隙。在写命令期间,公共控制FSM可具有附加的命令以用于连接到活动的PHY接口的不同的芯片。当仍然执行以前的写命令(数据传输)时,PHY控制器可主张“命令请求”并接收第二命令。
第二命令被呈送到第二芯片;且根据程序逻辑和当前状态,当前写数据传输可被中断。当写数据传输被中断时,来自Tx缓冲器的数据的在进行中的接收停转,且PHY接口DQS线停止切换。PHY控制器通过主张不同的(芯片)选择信号而将第二命令发送到被呈送的第二芯片(也被称为DIE)。在命令被发布之后,PHY控制器可通过撤销第二DIE选择线并重新主张第一DIE的写DIE选择线而重新开始数据写数据传输。
在写命令期间,PHY控制器可通过主张TxDataEna信号来发布Tx数据读请求。当PHY控制器停止写数据传输时,撤销TxDataEna信号;然而,在管线中的以前访问的数据继续传播到PHY控制器。在内部闪存存储器管线中的N(可以是装置相关的参数)个样本被刷新之后,传输完全停止且PHY可调用二次命令。二次命令可以不执行来自Tx缓冲器的数据操作,但供应通过公共命令总线提供操作数的命令。当Tx缓冲器水平下降到M(可以装置相关的参数)个样本之下且对当前分组还没有登记分组末尾(EOP)标记时,Tx缓冲器撤销TxDataRdy信号。在PHY控制器中,这个事件中断正常传输过程,直到TxDataRady被重新主张为止。注意的是,PHY传输过程可以不立即停止,且因此待办事项的M个样本可被提供以避免来自Tx缓冲器输出的欠载运行和在闪存写接口处的无效数据。
在读命令期间,PHY控制器将读总线事务发布到所指示的闪存装置。读后面是用来确认以前的命令已完成的轮询命令。轮询结果经由图3所示的公共响应总线被发送。以类似的方式,具有未决命令响应的任何PHY主张“RespPending”信号。公共控制响应仲裁器通过主张“RespRequest”来最终选择未决装置。未决装置然后将具有索引的响应数据和源地址代码驱动到响应总线上。
当读数据在闪存装置寄存器或缓冲器中是可用的时,公共控制FSM向PHY控制器发布读数据传输命令。PHY控制器发布闪存命令以访问读数据。数据在必要时被打包并接着通过TDM闪存PHY Rx数据总线被发送并进入接收方Rx缓冲器中,接收方Rx缓冲器具有对每一个有效的数据总线项主张的RxDat a Valid。
可能期望的是,有用来变更用于命令和对接到闪存存储器装置的管脚转变状态机的能力。因为向芯片提供命令和数据并从芯片接收状态和数据所需的特定波形未被标准化,所以用来使存储器控制器适于与这样的装置对接的能力是有用的。一般每一个制造商具有可能需要被容纳的在协议中的特定差异,或新的命令或可以变得可用的隐藏命令。
在每一个PHY控制器内可以是在初始化期间装入的小微代码表,允许主要应用指定闪存如何被访问。这个表可在整个公共控制总线上被装入并通过公共响应总线被验证。
微排序器引擎(μSEQEng)执行主要控制微代码并提供定时器、循环和分支能力。执行(Exec)FSM是操纵初始化和状态访问以及命令解析和执行的模块的总控制器。命令I/F是接口,其遵循中央命令总线协议、从主控制FSM取回命令并将所请求的状态传输到主控制FSM。
中央命令总线可以例如是向每一个PHY供应包含操作码和命令参数的一串信息的32位接口。命令接口是逻辑,其对共享中央命令总线控制信号做出响应以提取指向选定PHY的命令并在能够这么做时从选定PHY发送状态。在图5中示出协议流程图的示例。当ctrl_phy_cp信号被使用时,所捕获的数据可被装入分开的上下文中以用于寄存器和SRAM访问。
当中央控制向PHY控制器主张crdy(命令未决)时,“rqst”状态发布“命令请求”。当中央仲裁器可将命令发送到这个PHY时,“命令有效”被主张,其中可变数量的命令字中的每一个被传输,且“rcvl”状态收集2、3和4个32位命令数据字。当“命令有效”被撤销时,发起到活动命令状态“bsy”的“gotcmd”转变。同时在“bsy”中,PHY控制器将不对任何附加的命令做出响应。PHY控制器可进入数据传输状态并主张状态信号,该状态信号允许转变到“bsy_irq”状态;且从这个状态,为了防止阻碍长时延命令的线端拥塞,PHY控制器可接受新命令以访问存储器封装中的不同装置。如果另一命令从中央控制未决,则“rqst2”状态被进入以从中央总线接受第二命令上下文。第二命令上下文(辅助上下文)的到达设置对微排序器的IRQ请求。主要微排序器程序将已经指示用来停止当前上下文的能力,并将转变到空闲循环,使得新命令可被执行。在第二命令正在运行的同时,可以没有中断,直到其执行完成为止。
在二次命令已经完成之后,原始命令将重新开始;且根据数据传输操作的大小,命令可以在不可中断状态中附加的次数。辅助命令一般用于将读发布到闪存并从闪存得到状态以支持来自PFC的轮询操作。读命令导致数据被传输到芯片缓冲器,且分开的命令发起从芯片到PHY的数据传输。
命令接口可在任何时间保持两个并发命令上下文;主要和辅助。辅助上下文可在返回到主要上下文之前被丢弃。
由PFC发布的命令均由地址指定。微排序器在分支指令使程序执行重新定向到必要的微代码时的地址处执行。通过使用跳转表方法,微代码可按需要被修改,而不必变更PFC设计。“devsel”字段可用于限定CS(芯片选择)管脚模式以选择闪存封装和DIE。这个代码在闪存管理器物理查找结果中被确定。闪存命令参数可以是地址字节或设置特征控制字节。例如,闪存读操作可以以命令字节0x00开始,后面是C1、C2、P1、P2、P3地址字节,后面是0x30的另一命令。从PFC所提供的原始数据上下文头部,中央控制器提取一般操作和页/列地址信息,并在命令总线传输内供应这些数据。实际闪存装置命令字节(0x00和0x30)可嵌入微代码中,因为代码序列和所发送的命令限定闪存操作。主要状态机实际上反映在如图6所示的命令接口处的行动。
闪存命令调用微代码并跟随路径以允许多上下文执行。从闪存存储器返回状态或配置数据的闪存命令在发布“完成(Done)”命令之前生成响应缓冲器。命令接口可在每一个命令结束时被用信号通知以发布“Cmd Done”响应代码。当存在响应缓冲器时,可主张RespValid线足够长以传输具有CmdDone响应代码的响应缓冲器。在微程序的控制下,执行代码使能二次命令的中断;这个状态总线信息控制辅助命令子例程调用何时被执行,因为可能有不能被中断的闪存协议的部分。这些约束可被告知到特定于每一种类型的闪存装置的微代码程序中。Exec FSM维持run_context标志,其基于哪个命令正被执行。一般run_context将为零(主要命令),如果微代码许可,通过设置exec_state==IRQ,Exec FSM将请求另一命令。如果另一命令随后被接收到,则中断出现,且排序器状态被监控,直到它到达SWAP为止。排序器接着转变到BSY2(BSY2在逻辑上从与run_context=l组合的一般uCode BSY生成)。当第二上下文命令完成时,排序器状态移动到DONE2并暂停以允许Exec FSM切换run_context flag==0。排序器然后从DONE2转变到BSYl(BSY1在逻辑上从与run_context=0组合的一般uCode BSY生成)。从这个状态,微代码执行通过重新准备数据管线并重新进入主数据循环而继续。
微排序器利用可将定时器、循环和分支控制以及微命令提供到包含在PHY逻辑中的管脚排序器中的每一个管脚排序器的控制存储。在图7中示出排序器的顶层图。
当装置被初始化时,配置数据可包括装入DPRAM中的微代码。命令-指令寄存器可由ExecFSM装入并包含微排序器起始地址和参数阵列(地址或配置数据)。可以有例如由ExecFSM发布的一个或两个活动命令上下文:主要和辅助。如果主要命令特征许可,则微程序的控制可以被上下文切换到辅助命令。可以有在微程序中的特定位置,其中分支可出现以变更指令的正常流程。分支的执行可终止在接口空闲条件中,所以原始命令未被干扰。当辅助命令完成时,上下文可恢复并且微程序被写入以重新建立预先变空(一般是数据传输)的状态并继续操作。每一个命令完成或排序器的从Exec FSM服务辅助指令的能力可在cmd_state[]输出处被用信号通知。微指令寄存器在等待定时器事件的同时可提供关于每一个时钟或在几个时钟上的微控制信息。
执行FSM基于待执行的宏功能来选择微程序。在具有微程序指令的情况下,Exec FSM也提供闪存地址字节的阵列的形式的命令参数。当选定微程序执行时,按需要实现期望闪存操作的各种地址字节被选择。为了实现闪存配置命令,执行FSM选择适当的命令代码、装置选项和任何必要的地址或配置数据字节。例如,为了使用设置特征微指令来设置输出驱动,ExecFSM供应0x10作为驱动器强度寄存器的地址和然后配置数据。
在图8中示出PHY逻辑。在控制传输期间,控制管脚从排序器指令寄存器被直接驱动,同时DQ线用闪存命令或在cmd[7:0]上提供的地址信息来驱动。注意在控制循环期间,Tx DDR宏不在DDR速率下切换。在写数据传输期间,DQ和DQS输出被使能,ODT被禁用,且在tx_data上提供的写数据被驱动到DQ上,而DQS根据do_inst排序器指令来切换。在示例中,在400 Mbps下的24nm闪存切换读数据传输期间,PHY的DQ和DQS输出可被禁用,且ODT可被使能。当在DQS上从闪存装置接收到转变时,DLL可基于在培训期间建立的延迟来使边缘移位,并提供在“stb90”上的时钟脉冲。移位的边缘可用于对Rx DDR宏进行计时以对DQ输出采样,并恢复闪存读数据。Rx数据字被传输到Rx FIFO。以后,RxData接口使用核心时钟从Rx FIFO请求读数据。在表1中限定的输出管脚由每一个可编程指令的微程序管脚序列部件驱动。输入管脚可以是DQS或DQ。DQS在时间上移位以提供输入采样时钟。DQ管脚可使用DQS_in所得到的时钟由输入DDR宏来捕获。
表1 闪存接口管脚和定时信息的示例。
信号活动周期的持续时间由数个微程序指令和在其中限定的数据模式控制。然而,存在特定情况,其中可使用时间延迟来代替耗尽微程序存储来实现宽活动脉冲或在脉冲事件之间的延迟。
定时器l延迟和定时器l范围字段提供主张信号、保持并接着只用2个微指令撤销信号的能力。在表2中示出定时器能力。
定时器1条件 | 定时器1范围 | 最大延迟值(ns) |
400 Mbps(1,3,5,…15)仅奇数 | 0 | 37.5 |
133 Mbps(1,3,5,…15)仅奇数 | 0 | 112.7 |
400 Mbps(1,2,3,4,…15)任何值 | 1 | 75 |
133 Mbps(1,2,3,4,…15)任何值 | 1 | 227 |
400 Mbps(1,2,3…15)任何值 | 2 | 150 |
133 Mbps(1,2,3,…15)任何值 | 2 | 454 |
400 Mbps(1,2,3,…15)任何值 | 3 | 300 |
133 Mbps(1,2,3,…15)任何值 | 3 | 909 |
表2 微排序器定时器分辨率。
如果需要更长的延迟,则可使两个延迟邻接,或计时器2(计数器模式)可用于对较慢的事件计数。计时器2也可用于在程序可继续进行之前对事件计数。事件可例如是在R/BN信号上的高到低或低到高的转变。
控制和DQ管脚输出DDR宏逻辑是类似的。DQ版本具有用于命令字节或实际16位写数据的数据多路复用器。DDR宏是如图9所示的2: 1时钟步长交换寄存器。在入口时钟上,信息的两位被装入寄存器中。在第一半周期期间,多路复用器从下降沿触发的保持触发器选择前面的两位(di-bit)第二相位。输出管脚被保护免受在clk_in的上升沿处的瞬时安稳效应。输出多路复用器允许当前两位(di-bit)的bit[1]在第二半周期期间传播到输出。在输入时钟的下降沿上,当前两位的bit[0]被传输到保持寄存器,同时多路复用器选择稳定bit[1]值。在命令周期和设置特征命令期间,当SDR模式可能被期望时,同一值被装入din[l]和din[0]中。净结果在全时钟周期期间是不变的输出。
为了生成用于将数据写到闪存的在DQ和DQS之间的所需相位关系,DQ宏被馈送有用0度(deg)时钟,而DQS宏被馈送有270度时钟(关于微排序器的相位)。这个关系提供用于DQ数据输入分辨率延迟的全时钟周期,且DQS宏数据的¾时钟周期解码选择输入代码且所以较少被ECC校正延迟约束。
可从使用DLL移位时钟上升沿(SDR)、使用DLL移位时钟上升和下降沿(DDR模式)、使用直接DQS输入上升沿或使用直接DQS输入上升和下降沿的DQ管脚对数据采样。这些各种模式可能被需要以容纳将从闪存读取的数据传输到控制器的不同方法,这取决于制造商和芯片的特定的体系结构。轮询、获得特征(GetFeature)数据和获得ID(GetID)数据可以不使用与正常读数据相同的定时,且读数据接口的行动取决于已经如何用设置特征(SetFeature)命令来配置闪存。
Tx数据接口从Tx缓冲器接收闪存写数据。Tx数据接口对于400 Mbps模式(即,200 MHz)在½闪存数据位速率下被计时。
在Tx数据传输期间,当主张TxD_Rdy时,主张TxD_Ena信号。在选定源总线和TDM时隙上主张TxDataValid之前,存在X TBD周期的预先确定的管线延迟。所接收的任何有效数据被传输到PHY tx_data线。通常,当写操作开始时,从Tx缓冲器以连续方式拉数据。然而,当辅助命令被执行时,Tx数据流被暂停以许可将命令传送到另一装置,其可以是芯片。在上下文交换的准备中,微排序器可以撤销TxD_Ena信号,且从Tx缓冲器到PHY的管线将被刷新。最后一次传输对闪存出现,且总线可被放置于空闲状态中。当辅助命令完成时,原始上下文重新开始,且TxD_Ena信号被重新主张。该过程重复,直到所有未决数据已经被传输为止。注意,因为每当上下文被交换时,Tx数据管线被填充和刷新,所以平均数据传输速率减小;然而,总的来说,系统性能由于增强的并行性而增加。
Rx数据接口以类似于Tx数据接口的方式操作,但将数据传输到Rx缓冲器。
Rx缓冲器可被配置成当在缓冲器中存在比往返背压管线延迟数据等效形式更少的空间时撤销RxD_Rdy。在背压路径中有N个时钟周期,所以可使用2*N字节的保留。
读数据传输可以不开始,除非主张用于所分配的源通道“S”和TDM时隙(如可适用的)Rx缓冲器RxD_Rdy[p]。当数据从闪存存储器电路转接到Rx缓冲器时,RxData接口主张RxDataValid。如果在读数据的流中存在中断(由于辅助命令执行),则当没有数据时,撤销RxDataValid。然而如果RxD_Rdy信号在低状态中被采样,则微排序器可开始总线停止和保持,直到RxD_Rdy已经被撤销为止。在本例中,在大部分实例中,数据将被全部传输,因为Rx缓冲器具有足以在全线速率(例如10 PHY @ 400 Mbps)下接受的总时间带宽产品。
虽然上面已经详细描述了本发明的仅仅几个示例性实施方式,但本领域中的技术人员将容易认识到,很多修改在示例性实施方式中是可能的,而本质上不脱离本发明的新颖教导和优点。因此,所有这样的修改意在被包括在本发明的范围内。
Claims (12)
1.一种用于存储数字数据的设备,包括:
控制器;
与所述控制器通信的闪存存储器控制器,且所述闪存存储器控制器与多个闪存存储器电路通信,
其中在所述山村控制器和所述多个闪存存储器电路中的一个闪存存储器电路之间的写数据传输是可中断的。
2.如权利要求1所述的设备,还包括所述多个闪存存储器电路,
其中所述闪存存储器电路具有共享公共总线的多个存储器芯片。
3.如权利要求1所述的设备,其中当读命令被所述闪存存储器控制器接收并被引导到与所述写数据传输相同的闪存存储器电路时,写数据传输是可中断的。
4.如权利要求3所述的设备,其中所述写数据传输是可中断的以针对所述读命令的完成轮询所述闪存存储器电路。
5.如权利要求4所述的设备,其中所述写数据传输是可中断的以许可将完成的读命令的结果从所述闪存存储器电路的缓冲器传输到所述闪存存储器控制器。
6.一种管理闪存存储器装置的方法,包括:
提供可操作来管理读请求、写请求和与所述写请求相关联的数据的队列的处理器;
将所述写请求和所述相关联的数据传送到闪存存储器接口;
将读请求发送到所述闪存存储器接口;以及
确定到与所述读请求所识别的相同的存储器电路的写数据传输是否在进行中;以及
中断所述写数据传输以将所述读请求发送到所述闪存存储器电路;
重新开始所述写数据传输;
等待用来执行所述读请求的估计时间;
确定写数据传输是否在进行中;
中断所述写数据传输;
轮询所述存储器电路以确定是否有数据在读缓冲器中,且如果数据在所述读缓冲器中,则将数据从所述读缓冲器传输到所述闪存存储器接口;以及
重新开始以前中断的写数据传输。
7.如权利要求6所述的方法,其中在传送对应的写命令之前,所述写数据被传送到所述闪存存储器接口。
8.一种用于与闪存存储器电路对接的设备,包括:
控制器,其被配置成使读命令和写命令及相关联的写数据排队,并响应于读命令而接收数据,所述控制器适于与用户和与物理层接口(PHY)对接;以及
PHY,其包括执行微代码程序的状态机并被配置成提供信号,所述信号用于控制具有多个芯片的闪存存储器电路并用于在闪存存储器电路总线接口上发送和接收命令和数据;
其中所述PHY可操作来中断到所述闪存存储器电路的数据传输以许可另一命令的执行并在所述另一命令完成之后重新开始所述数据传输。
9.如权利要求8所述的设备,其中所述数据传输是将写到所述闪存存储器电路的芯片的数据,且所述另一命令选自读命令、轮询命令或读数据传输命令,并被引导到所述闪存存储器电路。
10.如权利要求9所述的设备,其中所述轮询命令确定数据已从所述芯片被读取且在与所述芯片相关联的缓冲器中是可用的。
11.如权利要求8所述的设备,其中命令和数据在相同的总线上被传送。
12.如权利要求8所述的设备,其中所述微代码程序是能够装入的。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201261650604P | 2012-05-23 | 2012-05-23 | |
US61/650604 | 2012-05-23 | ||
US13/833643 | 2013-03-15 | ||
US13/833,643 US20130318285A1 (en) | 2012-05-23 | 2013-03-15 | Flash memory controller |
PCT/US2013/040708 WO2013176912A1 (en) | 2012-05-23 | 2013-05-13 | Flash memory controller |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104520932A true CN104520932A (zh) | 2015-04-15 |
CN104520932B CN104520932B (zh) | 2018-04-10 |
Family
ID=49622489
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201380026317.6A Active CN104520932B (zh) | 2012-05-23 | 2013-05-13 | 闪存存储器控制器 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20130318285A1 (zh) |
KR (2) | KR20150022847A (zh) |
CN (1) | CN104520932B (zh) |
WO (1) | WO2013176912A1 (zh) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107093447A (zh) * | 2016-02-18 | 2017-08-25 | 补丁科技股份有限公司 | 存储器装置 |
CN107423227A (zh) * | 2016-05-24 | 2017-12-01 | 瑞昱半导体股份有限公司 | 记忆体装置、记忆体控制器与其控制方法 |
CN108475518A (zh) * | 2016-03-04 | 2018-08-31 | 爱德斯托科技有限公司 | 存储器装置中的读取时延减小 |
CN108804353A (zh) * | 2017-04-26 | 2018-11-13 | 来扬科技股份有限公司 | 基于spi界面的多内存协作结构 |
CN109686394A (zh) * | 2018-12-17 | 2019-04-26 | 深圳忆联信息系统有限公司 | Nand Flash Phy参数配置方法和装置 |
CN110431540A (zh) * | 2017-03-16 | 2019-11-08 | 高通股份有限公司 | 用于在非托管闪存设备中复制数据页的方法和装置 |
CN111752875A (zh) * | 2020-06-22 | 2020-10-09 | 深圳鲲云信息科技有限公司 | 一种模块间通信方法及系统 |
CN112835750A (zh) * | 2019-11-22 | 2021-05-25 | 上海欧菲智能车联科技有限公司 | 数据处理方法及数据处理系统 |
CN113468082A (zh) * | 2020-03-31 | 2021-10-01 | 西部数据技术公司 | 用于ssd的总线多路复用器网格的高级ce编码 |
TWI801191B (zh) * | 2021-09-29 | 2023-05-01 | 慧榮科技股份有限公司 | 寫入資料到閃存記憶體的方法及裝置 |
US11860775B2 (en) | 2021-09-29 | 2024-01-02 | Silicon Motion, Inc. | Method and apparatus for programming data into flash memory incorporating with dedicated acceleration hardware |
US11972150B2 (en) | 2021-09-29 | 2024-04-30 | Silicon Motion, Inc. | Method and non-transitory computer-readable storage medium and apparatus for programming data into flash memory through dedicated acceleration hardware |
Families Citing this family (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9411722B2 (en) | 2013-03-04 | 2016-08-09 | Sandisk Technologies Llc | Asynchronous FIFO buffer for memory access |
US9235504B2 (en) * | 2013-07-16 | 2016-01-12 | Kabushiki Kaisha Toshiba | Prioritizing read-command issuance in a data storage apparatus |
TWI553641B (zh) * | 2013-12-09 | 2016-10-11 | 慧榮科技股份有限公司 | 資料儲存裝置及其模式偵測方法 |
TWI467578B (zh) * | 2014-01-09 | 2015-01-01 | Phison Electronics Corp | 錯誤處理方法、記憶體儲存裝置與記憶體控制電路單元 |
CA2881206A1 (en) | 2014-02-07 | 2015-08-07 | Andrew WARFIELD | Methods, systems and devices relating to data storage interfaces for managing address spaces in data storage devices |
US9542344B2 (en) | 2014-02-19 | 2017-01-10 | Sandisk Technologies Llc | Datapath management in a memory controller |
US9666244B2 (en) | 2014-03-01 | 2017-05-30 | Fusion-Io, Inc. | Dividing a storage procedure |
US10275386B2 (en) | 2014-06-27 | 2019-04-30 | Advanced Micro Devices, Inc. | Memory physical layer interface logic for generating dynamic random access memory (DRAM) commands with programmable delays |
US9639495B2 (en) | 2014-06-27 | 2017-05-02 | Advanced Micro Devices, Inc. | Integrated controller for training memory physical layer interface |
US9933950B2 (en) * | 2015-01-16 | 2018-04-03 | Sandisk Technologies Llc | Storage operation interrupt |
US9536617B2 (en) | 2015-04-03 | 2017-01-03 | Sandisk Technologies Llc | Ad hoc digital multi-die polling for peak ICC management |
KR20170050953A (ko) * | 2015-11-02 | 2017-05-11 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그의 동작방법 |
KR102425259B1 (ko) | 2015-11-27 | 2022-07-27 | 에스케이하이닉스 주식회사 | 비휘발성 메모리 장치, 반도체 장치 및 반도체 장치의 동작 방법 |
US10467157B2 (en) | 2015-12-16 | 2019-11-05 | Rambus Inc. | Deterministic operation of storage class memory |
CN105739919B (zh) * | 2016-01-21 | 2018-10-12 | 捷鼎创新股份有限公司 | 资料存取系统及方法 |
US9940052B2 (en) | 2016-09-14 | 2018-04-10 | Micron Technology, Inc. | Memory device configuration commands |
US10153014B1 (en) * | 2017-08-17 | 2018-12-11 | Micron Technology, Inc. | DQS-offset and read-RTT-disable edge control |
KR20190023433A (ko) * | 2017-08-29 | 2019-03-08 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그것의 동작 방법 |
US10528268B2 (en) | 2017-09-12 | 2020-01-07 | Toshiba Memory Corporation | System and method for channel time management in solid state memory drives |
KR20200104601A (ko) | 2019-02-27 | 2020-09-04 | 에스케이하이닉스 주식회사 | 컨트롤러, 메모리 시스템 및 그것의 동작 방법 |
KR102456173B1 (ko) * | 2017-10-27 | 2022-10-18 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그것의 동작 방법 |
US12118241B2 (en) | 2017-10-27 | 2024-10-15 | SK Hynix Inc. | Memory controller, memory system, and operating method thereof |
JP2020004465A (ja) * | 2018-06-26 | 2020-01-09 | キオクシア株式会社 | 半導体記憶装置 |
US10802756B1 (en) | 2018-07-12 | 2020-10-13 | Seagate Technology Llc | Flash queue status polling |
CN109558336A (zh) * | 2018-12-09 | 2019-04-02 | 江苏华存电子科技有限公司 | 用于闪存主控硬件自动快速产生闪存接口讯号序列的方法 |
JP7143232B2 (ja) * | 2019-01-29 | 2022-09-28 | キオクシア株式会社 | メモリシステムおよび制御方法 |
KR102157571B1 (ko) * | 2019-11-21 | 2020-09-18 | 주식회사 파두 | 메모리 시스템 |
WO2022155798A1 (en) * | 2021-01-19 | 2022-07-28 | Alibaba Group Holding Limited | Memory priming and initialization systems and methods |
CN113010106B (zh) * | 2021-02-25 | 2024-05-14 | 北京遥测技术研究所 | 一种基于fpga的总线复用型flash读写系统 |
KR102481649B1 (ko) * | 2021-12-01 | 2022-12-28 | 삼성전자주식회사 | 비휘발성 메모리 장치, 그것을 제어하는 제어기, 그것을 포함하는 저장 장치 및 그것의 동작 방법 |
US11914901B2 (en) | 2022-06-29 | 2024-02-27 | Silicon Motion, Inc. | Flash memory controller and method capable of transmitting multiple set-feature signals and macro settings to flash memory device |
US12073085B2 (en) * | 2022-06-29 | 2024-08-27 | Silicon Motion, Inc. | Flash memory controller and method capable of using one set-feature signal as a macro execution signal to execute multiple set-feature operations for flash memory device |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040003167A1 (en) * | 2002-06-27 | 2004-01-01 | Hiroyuki Kimura | Microcomputer |
CN1622056A (zh) * | 2004-12-24 | 2005-06-01 | 北京中星微电子有限公司 | 一种访问文件的方法 |
WO2010143209A1 (en) * | 2009-06-10 | 2010-12-16 | Francesco Falanga | Suspension of memory operations for reduced read latency in memory arrays |
US20110055453A1 (en) * | 2009-08-28 | 2011-03-03 | Interruptible Nand Flash Memory | Interruptible nand flash memory |
US20110213921A1 (en) * | 2003-12-02 | 2011-09-01 | Super Talent Electronics Inc. | Command Queuing Smart Storage Transfer Manager for Striping Data to Raw-NAND Flash Modules |
US20120124317A1 (en) * | 2010-11-16 | 2012-05-17 | Micron Technology, Inc. | Concurrent read and write memory operations in a serial interface memory |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5940861A (en) * | 1996-09-20 | 1999-08-17 | Intel Corporation | Method and apparatus for preempting operations in a nonvolatile memory in order to read code from the nonvolatile memory |
US5822244A (en) * | 1997-09-24 | 1998-10-13 | Motorola, Inc. | Method and apparatus for suspending a program/erase operation in a flash memory |
US8112574B2 (en) * | 2004-02-26 | 2012-02-07 | Super Talent Electronics, Inc. | Swappable sets of partial-mapping tables in a flash-memory system with a command queue for combining flash writes |
ITMI20050063A1 (it) * | 2005-01-20 | 2006-07-21 | Atmel Corp | Metodo e sistema per la gestione di una richiesta di sospensione in una memoria flash |
US7562180B2 (en) * | 2006-03-28 | 2009-07-14 | Nokia Corporation | Method and device for reduced read latency of non-volatile memory |
US7970919B1 (en) * | 2007-08-13 | 2011-06-28 | Duran Paul A | Apparatus and system for object-based storage solid-state drive and method for configuring same |
CN201119524Y (zh) * | 2007-12-07 | 2008-09-24 | 建福实业有限公司 | 卷发器 |
GB2461495A (en) * | 2008-02-13 | 2010-01-06 | Bioconversion Technologies Ltd | Ethanol production by lactate dehydrogenase-deleted thermophilic microorganisms |
JP2012511789A (ja) * | 2008-12-09 | 2012-05-24 | ラムバス・インコーポレーテッド | 並行且つパイプライン化されたメモリ動作用の不揮発性メモリデバイス |
KR101600951B1 (ko) * | 2009-05-18 | 2016-03-08 | 삼성전자주식회사 | 고체 상태 드라이브 장치 |
US8004884B2 (en) * | 2009-07-31 | 2011-08-23 | International Business Machines Corporation | Iterative write pausing techniques to improve read latency of memory systems |
US9021158B2 (en) * | 2009-09-09 | 2015-04-28 | SanDisk Technologies, Inc. | Program suspend/resume for memory |
US8429374B2 (en) * | 2010-01-28 | 2013-04-23 | Sony Corporation | System and method for read-while-write with NAND memory device |
JP4829365B1 (ja) * | 2010-05-31 | 2011-12-07 | 株式会社東芝 | データ記憶装置及びデータ書き込み方法 |
-
2013
- 2013-03-15 US US13/833,643 patent/US20130318285A1/en not_active Abandoned
- 2013-05-13 CN CN201380026317.6A patent/CN104520932B/zh active Active
- 2013-05-13 KR KR1020147035576A patent/KR20150022847A/ko active Application Filing
- 2013-05-13 KR KR1020177000483A patent/KR20170005900A/ko not_active Application Discontinuation
- 2013-05-13 WO PCT/US2013/040708 patent/WO2013176912A1/en active Application Filing
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040003167A1 (en) * | 2002-06-27 | 2004-01-01 | Hiroyuki Kimura | Microcomputer |
US20110213921A1 (en) * | 2003-12-02 | 2011-09-01 | Super Talent Electronics Inc. | Command Queuing Smart Storage Transfer Manager for Striping Data to Raw-NAND Flash Modules |
CN1622056A (zh) * | 2004-12-24 | 2005-06-01 | 北京中星微电子有限公司 | 一种访问文件的方法 |
WO2010143209A1 (en) * | 2009-06-10 | 2010-12-16 | Francesco Falanga | Suspension of memory operations for reduced read latency in memory arrays |
US20110055453A1 (en) * | 2009-08-28 | 2011-03-03 | Interruptible Nand Flash Memory | Interruptible nand flash memory |
US20120124317A1 (en) * | 2010-11-16 | 2012-05-17 | Micron Technology, Inc. | Concurrent read and write memory operations in a serial interface memory |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107093447A (zh) * | 2016-02-18 | 2017-08-25 | 补丁科技股份有限公司 | 存储器装置 |
CN108475518B (zh) * | 2016-03-04 | 2022-03-18 | 爱德斯托科技有限公司 | 存储器装置 |
CN108475518A (zh) * | 2016-03-04 | 2018-08-31 | 爱德斯托科技有限公司 | 存储器装置中的读取时延减小 |
CN107423227A (zh) * | 2016-05-24 | 2017-12-01 | 瑞昱半导体股份有限公司 | 记忆体装置、记忆体控制器与其控制方法 |
CN110431540A (zh) * | 2017-03-16 | 2019-11-08 | 高通股份有限公司 | 用于在非托管闪存设备中复制数据页的方法和装置 |
CN110431540B (zh) * | 2017-03-16 | 2023-03-14 | 高通股份有限公司 | 用于在非托管闪存设备中复制数据页的方法和装置 |
CN108804353A (zh) * | 2017-04-26 | 2018-11-13 | 来扬科技股份有限公司 | 基于spi界面的多内存协作结构 |
CN109686394A (zh) * | 2018-12-17 | 2019-04-26 | 深圳忆联信息系统有限公司 | Nand Flash Phy参数配置方法和装置 |
CN109686394B (zh) * | 2018-12-17 | 2020-12-01 | 深圳忆联信息系统有限公司 | Nand Flash Phy参数配置方法和装置 |
CN112835750A (zh) * | 2019-11-22 | 2021-05-25 | 上海欧菲智能车联科技有限公司 | 数据处理方法及数据处理系统 |
CN112835750B (zh) * | 2019-11-22 | 2023-01-17 | 上海欧菲智能车联科技有限公司 | 数据处理方法及数据处理系统 |
CN113468082A (zh) * | 2020-03-31 | 2021-10-01 | 西部数据技术公司 | 用于ssd的总线多路复用器网格的高级ce编码 |
CN111752875A (zh) * | 2020-06-22 | 2020-10-09 | 深圳鲲云信息科技有限公司 | 一种模块间通信方法及系统 |
TWI801191B (zh) * | 2021-09-29 | 2023-05-01 | 慧榮科技股份有限公司 | 寫入資料到閃存記憶體的方法及裝置 |
US11860775B2 (en) | 2021-09-29 | 2024-01-02 | Silicon Motion, Inc. | Method and apparatus for programming data into flash memory incorporating with dedicated acceleration hardware |
US11966604B2 (en) | 2021-09-29 | 2024-04-23 | Silicon Motion, Inc. | Method and apparatus for programming data arranged to undergo specific stages into flash memory based on virtual carriers |
US11972150B2 (en) | 2021-09-29 | 2024-04-30 | Silicon Motion, Inc. | Method and non-transitory computer-readable storage medium and apparatus for programming data into flash memory through dedicated acceleration hardware |
Also Published As
Publication number | Publication date |
---|---|
WO2013176912A1 (en) | 2013-11-28 |
KR20150022847A (ko) | 2015-03-04 |
KR20170005900A (ko) | 2017-01-16 |
CN104520932B (zh) | 2018-04-10 |
US20130318285A1 (en) | 2013-11-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104520932A (zh) | 闪存存储器控制器 | |
US8775717B2 (en) | Storage controller for flash memory including a crossbar switch connecting a plurality of processors with a plurality of internal memories | |
US8145805B2 (en) | Method for re-sequencing commands and data between a master and target devices utilizing parallel processing | |
JP7195486B1 (ja) | 異種メモリシステムに対するシグナリング |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |