CN106297865A - 控制半导体存储器件的控制器及其操作方法 - Google Patents
控制半导体存储器件的控制器及其操作方法 Download PDFInfo
- Publication number
- CN106297865A CN106297865A CN201610086289.2A CN201610086289A CN106297865A CN 106297865 A CN106297865 A CN 106297865A CN 201610086289 A CN201610086289 A CN 201610086289A CN 106297865 A CN106297865 A CN 106297865A
- Authority
- CN
- China
- Prior art keywords
- order
- reading
- reading order
- storage unit
- data
- 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
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/22—Read-write [R-W] timing or clocking circuits; Read-write [R-W] control signal generators or management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1048—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1012—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
- G06F11/1016—Error in accessing a memory location, i.e. addressing error
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1048—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
- G06F11/106—Correcting systematically all correctable errors, i.e. scrubbing
-
- 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/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/349—Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/02—Detection or location of defective auxiliary circuits, e.g. defective refresh counters
- G11C29/021—Detection or location of defective auxiliary circuits, e.g. defective refresh counters in voltage or current generators
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/02—Detection or location of defective auxiliary circuits, e.g. defective refresh counters
- G11C29/028—Detection or location of defective auxiliary circuits, e.g. defective refresh counters with adaption or trimming of parameters
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/38—Response verification devices
- G11C29/42—Response verification devices using error correcting codes [ECC] or parity check
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/52—Protection of memory contents; Detection of errors in memory contents
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Read Only Memory (AREA)
Abstract
一种根据实施例的用于控制半导体存储器件的操作方法可以包括:将读取命令储存在基于先进先出法来管理的命令队列中;将读取命令中的一个提供给半导体存储器件;基于响应于提供的读取命令而从半导体存储器件提供的读取数据来判断提供的读取命令通过还是失败;以及当提供的读取命令通过时,中止命令队列中的剩余读取命令。
Description
技术领域
各种实施例总体而言涉及一种电子器件,更具体地,涉及一种控制半导体存储器件的控制器及其操作方法。
背景技术
半导体存储器件由诸如硅(Si)、锗(Ge)、砷化镓(GaAs)及磷化铟(InP)的半导体材料制成。半导体存储器件分为易失性存储器件和非易失性存储器件。
易失性存储器件在断电时丢失储存的数据。易失性存储器件的示例包含静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)和同步动态随机存取存储器(SDRAM)。不管为上电状态还是断电状态,非易失性存储器件都保留储存的数据。非易失性存储器件的示例包含只读存储器(ROM)、掩膜只读存储器(MROM)、可编程只读存储器(PROM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、快闪存储器、相变随机存取存储器(PRAM)、磁性随机存取存储器(MRAM)、电阻式随机存取存储器(RRAM)以及铁电式随机存取存储器(FRAM)。快闪存储器分为NOR型存储器和NAND型存储器。
半导体存储器件控制器可以在主机的请求下产生命令,并执行产生的命令。控制器可以包含用来储存命令的命令队列。命令队列可以被限定在诸如RAM的存储器单元中。储存于命令队列中的命令可以顺序地输出至该半导体存储器件。
发明内容
实施例针对一种具有改善的操作时间的控制器及其操作方法。
根据一个实施例,一种用于控制半导体存储器件的操作方法可以包括:将多个读取命令储存在基于先进先出法来管理的命令队列中;将所述多个读取命令中的一个提供给半导体存储器件;基于响应于提供的读取命令而从半导体存储器件提供的读取数据来判断提供的读取命令通过还是失败;以及当提供的读取数据命令通过时,中止命令队列中的剩余的读取命令。
半导体存储器件可以包含多个页,且所述多个读取命令可以用于识别所述多个页之一中储存的数据的命令。
判断可以包括:对读取数据执行ECC解码,且当ECC解码通过时,提供的读取命令可以通过。
该操作方法还可以包括:当提供的读取命令失败时,用剩余的读取命令来重复提供和判断。
该操作方法还可以包括:产生用来改变半导体存储器件的设定值的多个参数设定命令,所述多个参数设定命令与所述多个读取命令一起储存在命令队列中;以及将所述多个参数设定命令中的一个提供给半导体存储器件。
该中止可以包括:当提供的读取命令通过时,中止命令队列中的剩余的参数设定命令。
该设定值可以对应于在半导体存储器件的读取操作期间施加至半导体存储器件的字线的电压。
命令队列可以包含从头地址至尾地址的存储空间,以及所述多个读取命令可以被储存在头地址与尾地址之间的从开始地址至结束地址的存储空间中。
该中止可以包括:当提供的读取命令通过时,产生阴影指针,该阴影指针指向与剩余的读取命令中的第一个相对应的地址;以及擦除由该阴影指针所指向的剩余读取命令,同时将该阴影指针从当前的地址移动至下一个地址,直到该阴影指针指向结束地址为止。
该中止可以包括:顺序地停止开始地址与结束地址之间的剩余读取命令。
该中止可以擦除命令队列中的储存在开始地址与结束地址之间的存储空间中的剩余读取命令。
当对读取数据中包含的一个或多个码字的ECC解码失败时,该判断可以判断提供的读取命令是否失败。
可以对响应于先前提供的读取命令而先前从半导体存储器件提供的读取数据中ECC解码失败的一个或多个码字执行ECC解码。
根据另一实施例,一种控制半导体存储器件的控制器可以包括:命令队列,基于先进先出法来管理;命令发生单元,适用于将多个读取命令储存在命令队列中;存储器控制单元,适用于:将所述多个读取命令中的一个提供给半导体存储器件;以及基于响应于提供的读取命令而从半导体存储器件提供来判断提供的读取命令通过还是失败;以及命令管理单元,适用于当提供的数据通过时中止剩余的读取命令。
该半导体存储器件可以包含多个页,以及所述多个读取命令可以用于识别储存在所述多个页之一中的数据。
该存储器控制单元可以包括:数据缓冲器,适用于储存响应于提供的读取命令而从半导体存储器件提供的读取数据;错误校正块,适用于以单个码字为单位来对读取数据执行ECC解码;解码状态表,适用于储存对包含于读取数据中的每个码字的ECC解码的通过或失败信息;多路复用块,适用于以单个码字为单位将读取数据从数据缓冲器提供至错误校正块;以及存储器控制器,适用于:通过查阅解码状态表来控制多路复用块以将响应于先前提供的读取命令先前从半导体存储器件提供的读取数据中ECC解码失败的一个或多个码字提供给错误校正块;以及根据ECC解码的结果,更新储存在解码状态表中的失败信息。
当对读取数据中包含的一个或多个码字的ECC解码失败时,该存储器控制单元确定提供的读取命令失败。
根据一个实施例,一种用于控制包含多个页的半导体存储器件的操作方法可以包括:将用于识别选中页中的数据的多个命令储存在基于先进先出法来管理的命令队列中;将所述多个命令中的一个提供给半导体器件;当提供的读取命令失败时,重复提供剩余的读取命令;以及当提供的读取命令通过时,中止剩余的读取命令
附图说明
图1为图示根据一个实施例的存储***的框图。
图2为图示图1中所示的半导体存储器件的框图。
图3为图示图2中所示的存储单元阵列的框图。
图4为图示根据一个实施例的图1中所示的控制器的框图。
图5为图示根据一个实施例的控制器的操作方法的流程图。
图6为图示命令队列的概念图。
图7为图示图5中所示的步骤S150的一个实施例的流程图。
图8为图示图7中所示的实施例的概念图。
图9为图示图5中所示的步骤S150的另一实施例的流程图。
图10为图9中所示的实施例的概念图。
图11为图示根据另一实施例的图1中所示的控制器的框图。
图12为图示图11中所示的第一命令队列和第二命令队列的概念图。
图13为图示图4和图11中所示的存储器控制单元的示图。
图14为图示包含于读取数据中的码字的概念图。
图15为图示图13中所示的解码状态表的概念图。
图16为图示图4和图11中所示的控制器的实施例的框图。
图17为图示图1中所示的存储***的应用示例的框图。
具体实施方式
在下文中,将参照附图来详细描述各种实施例。附图被提供以允许本领域技术人员理解本发明的实施例的范围。然而,本发明可以以不同形式体现,且不应被解释为局限于所阐述的实施例。相反地,这些实施例被提供使得本公开将是彻底且完整的。此外,实施例被提供以将本发明的范围充分地传达给本领域技术人员。
贯穿本公开,附图标记直接对应于本发明的各种附图和实施例中相同编号的部件。亦注意到,在本说明书中,“连接/耦接”表示一个组件不仅直接耦接到另一组件,而且也表示通过中间组件而间接耦接到另一组件。此外,只要未说明,则单数形态可以包含复数形态,反之亦然。
图1为图示根据一个实施例的存储***50的框图。
参照图1,存储***50可以包含半导体存储器件100和控制器200。
半导体存储器件100可以通过控制器200来控制。半导体存储器件100可以包含存储单元阵列110和驱动该存储单元阵列110的***电路120。存储单元阵列110可以包含多个非易失性存储单元。
***电路120可以通过控制器200来控制。在控制器200的控制下,***电路120可以将数据编程至存储单元阵列110中、从存储单元阵列110读取数据以及从存储单元阵列110擦除数据。
根据一个实施例,半导体存储器件100的读取操作和编程操作可以以页为单位来执行。半导体存储器件100的擦除操作可以以存储块为单位来执行。
在编程操作期间,***电路120可以从控制器20接收指示编程操作的命令、物理地址和写入数据。单个存储块以及包含于其中的单个页可以通过物理地址来指定。***电路120可以将写入数据编程至对应的页中。
在读取操作期间,***电路120可以从控制器200接收指示该读取操作的命令(在下文中为读取命令)以及物理地址。单个存储块以及包含于其中的单个页可以通过该物理地址来指定。***电路120可以从对应的页读取数据,并将读取的数据(在下文中为读取数据)输出至控制器200。
在擦除操作期间,***电路120可以从控制器200接收指示该擦除操作的命令和物理地址。物理地址可以指定单个存储块。***电路120可以擦除对应于该物理地址的存储块的数据。
根据一个实施例,半导体存储器件100可以为快闪存储器件。
控制器200可以控制半导体存储器件100的常规操作。控制器200可以在主机的请求下访问半导体存储器件100。例如,控制器1200可以控制半导体存储器件100的读取操作、编程操作、擦除操作和/或后台操作(background operation)。控制器200可以提供半导体存储器件100与主机之间的接口。控制器200可以驱动用于控制半导体存储器件100的固件。
当主机传送读取请求时,为了识别对应于该读取请求的页中的数据,控制器200可以将读取命令提供给半导体存储器件100。控制器200可以将包含于该读取请求中的逻辑块地址转换为物理块地址。根据一个实施例,控制器200可以当作闪存转换层(FTL,flash translation layer)。控制器200可以将产生的物理地址与该读取命令一起提供给半导体存储器件100。
响应各个读取命令,半导体存储器件100可以将读取数据传送至控制器200。控制器200可以判断在该读取数据中是否包含有错误。例如,控制器200可以根据错误校正码来对该读取数据解码。可以使用各种错误校正码,诸如BCH码(Bose ChaudhuriHocquenghem code)、汉明码(Hamming code)、里德-所罗门码(Reed Solomon code)、低密度奇偶校验码(LDPC code,low density parity check code)。例如,当读取数据包含多于预定数量的错误位时,解码可以失败。当读取数据包含等于或少于该预定数量的错误位时,解码可以成功。
解码成功可以意指对应的读取命令通过,而解码失败可以意指对应的读取命令失败。当解码成功时,控制器200可以将错误校正过的读取数据输出给主机。当解码失败时,控制器200可以重新传送读取命令至半导体存储器件100。
图2为图示参照图1而描述的半导体存储器件100的框图。图3为图2中所示的存储单元阵列110的框图。
参照图2,半导体存储器件100可以包含存储单元阵列110和***电路120。
存储单元阵列110可以包含多个存储单元。所述多个存储单元可以通过行线RL而耦接到地址解码器121,以及通过位线BL而耦接到读写电路123。
参照图3,存储单元阵列110可以包含多个存储块BLK1至BLKz。第一存储块BLK1至第z存储块BLKz可以共同耦接到第一位线BL1至第m位线BLm。第一位线BL1至第m位线BLm可以形成图2中所示的位线BL。存储块BLK1至BLKz中的每个可以形成擦除单元。
在图3中,图示了包含于存储块BLK1至BLKz的一个存储块(BLK1)中的元件,以及为了清楚而省略包含于剩余的存储块BLK2至BLKz中的元件。剩余的存储块BLK2至BLKz中的每个可以以与第一存储块BLK1基本上相同的方式来配置。
存储块BLK1可以包含多个单元串CS1至CSm。第一单元串CS1至第m单元串CSm可以分别耦接到第一位线BL1至第m位线BLm。
单元串CS1至CSm中的每个可以包含漏极选择晶体管DST、串联耦接的多个存储单元MC1至MCn以及源极选择晶体管SST。漏极选择晶体管DST可以耦接到漏极选择线DSL1。第一存储单元MC1至第n存储单元MCn可以分别耦接到第一字线WL1至第n字线WLn。源极选择晶体管SST可以耦接到源极选择线SSL1。漏极选择晶体管DST的漏极端可以耦接到对应的位线。源极选择晶体管SST的源极端可以耦接到参考电压节点。根据一个实施例,源极选择晶体管SST的源极端可以耦接到公共源极线(未示出)。该公共源极线可以被偏置至参考电压。
第一单元串CS1至第m单元串CSm中的耦接到单个字线的存储单元可以形成单个页pg。因此,存储块BLK1可以包含多个页。
漏极选择线DSL1、第一字线WL1至第n字线WLn以及源极选择线SSL1可以被包含于图2中所示的行线RL中。漏极选择线DSL1、第一字线WL1至第n字线WLn以及源极选择线SSL1可以通过地址解码器121来控制。第一位线BL1至第m位线BLm可以通过读写电路123来控制。
再次参照图2,***电路120可以包含地址解码器121、电压发生器122、读写电路123、输入/输出缓冲器124以及控制逻辑125。
地址解码器121可以通过行线RL而耦接到存储单元阵列110。地址解码器121可以通过控制逻辑125来控制。地址解码器121可以通过控制逻辑125来接收物理地址PA。
半导体存储器件100的读取操作可以以页为单位(见图3中的引用符号pg)来执行。在读取操作期间所接收的物理地址PA可以包含块地址和行地址。
地址解码器121可以对接收的物理地址PA中的块地址解码。地址解码器121可以根据解码的块地址来选择存储块BLK1至BLKz中的一个。
地址解码器121可以对接收的物理地址PA中的行地址解码,并选择选中存储块中的一个字线。因此,单个页可以被选中。地址解码器121可以将来自电压发生器122的读取电压施加至选中字线,并将来自电压发生器122的通过电压施加至未选中字线。
电压发生器122可以通过控制逻辑125来控制。电压发生器122可以通过使用被提供给半导体存储器件100的外部电源电压来产生内部电源电压。例如,电压发生器122可以通过调节外部电源电压来产生内部电源电压。内部电源电压可以被提供至地址解码器121、读写电路123、输入/输出缓冲器124以及控制逻辑125,并被用作半导体存储器件100的操作电压。
电压发生器122可以通过使用外部电源电压和内部电源电压中的至少一种来产生多个电压。根据一个实施例,电压发生器122可以包含接收内部电源电压的多个泵电容,并通过在控制逻辑125的控制下选择性地激活多个泵电容来产生多个电压。例如,在读取操作期间,电压发生器122可以产生读取电压以及具有比该读取电压高的电压电平的通过电压。产生的电压可以被提供给地址解码器121。
读写电路123可以通过位线BL而耦接到存储单元阵列110。读写电路123可以通过控制逻辑125来控制。
在读取操作期间,读写电路123可以读取并储存来自存储单元阵列110的选中字线的页的读取数据DATA。读取数据DATA可以通过数据线DL而被传送至输入/输出缓冲器124。
输入/输出缓冲器124可以通过数据线DL而耦接到读写电路123。输入/输出缓冲器124可以通过控制逻辑125来控制。输入/输出缓冲器124可以将通过数据线DL而从读写电路123传送来的读取数据DATA向外部输出。
控制逻辑125可以控制半导体存储器件100的常规操作。控制逻辑125可以接收命令CMD和物理地址PA。在读取操作期间,命令CMD可以为读取命令。在编程操作期间,命令CMD可以指示该编程操作。在擦除操作期间,命令CMD可以指示该擦除操作。控制逻辑125可以响应于接收到的命令CMD来控制地址解码器121、电压发生器122、读写电路123以及输入/输出缓冲器124。
用来改变半导体存储器件100的设定值的参数设定命令可以被接收作为命令CMD。例如,参数设定命令可以包含用来改变读取电压的信息。控制逻辑125可以响应于参数设定命令来控制电压发生器122以改变读取电压。例如,参数设定命令可以包含用来改变通过电压的信息。
在每个页中包含的存储单元的阈值电压分布可以因为各种原因而改变。众所周知的是,选中字线的数据通过控制读取电压而被识别为不同的读取数据。换言之,通过施加不适当的读取电压,许多错误位可以被包含于读取数据中。通过控制读取电压,可以减少读取数据中包含的错误位。当读取命令由于通过执行读取命令而获得的读取数据中包含许多错误位而失败时,图1中所示的控制器200可以通过将参数设定命令提供给半导体存储器件100来控制读取电压,并通过再次传送读取命令来再次接收对应的页的读取数据。
图4为根据一个实施例的参照图1而描述的控制器200的框图。
参照图4,控制器200可以包含存储器单元210、命令发生单元220、存储器控制单元230和命令管理单元240。
存储器单元210可以耦接到命令发生单元220、存储器控制单元230和命令管理单元240。在控制器200中,存储器单元210可以提供储存空间。在存储器单元210中,可以定义命令队列CQ和状态信息队列SQ。命令队列CQ和状态信息队列SQ两者都可以使用先进先出法(first-in first-out basis)来管理。命令队列CQ和状态信息队列SQ中的每个可以包含头地址HA和尾地址TA。
命令发生单元220可以耦接到存储器单元210和命令管理单元240。命令发生单元220可以通过命令管理单元240来控制。响应来自主机的请求,命令发生单元220可以在命令管理单元240的控制下产生对应于该请求的命令。
根据一个实施例,命令发生单元220可以当作闪存转换层(FTL)。命令发生单元220可以将来自主机的请求中包含的逻辑块地址转换为物理块地址。当对应的命令被储存于命令队列CQ中时,命令发生单元220可以将产生的物理地址与对应的命令一起储存在存储器单元210中。储存在存储器单元210中的物理地址可以通过存储器控制单元230而与对应的命令一起被传送至半导体存储器件100。
根据一个实施例,命令发生单元220可以产生用于识别与读取请求相对应的页(在下文中为选中页)的数据的多个命令,并将产生的命令储存在命令队列CQ中,命令队列CQ被限定在存储器单元210中。根据一个实施例,命令发生单元220可以重复产生读取命令和参数设定命令,并将产生的读取命令和参数设定命令输入至命令队列CQ中。
根据一个实施例,命令发生单元220可以响应于读取请求而产生用于识别选中页的数据的多个命令。产生的命令可以被顺序地提供给半导体存储器件100。
根据一个实施例,命令发生单元220可以响应于读取请求而首先产生单个读取命令。该读取命令和对应的物理地址可以被提供给半导体存储器件100。来自半导体存储器件100的读取数据可以被接收。当对读取数据的解码失败时,命令发生单元220可以在命令管理单元240的控制下产生用于识别选中页中的数据的多个命令。
存储器控制单元230可以耦接到存储单元210和命令管理单元240。存储器控制单元230可以包含ECC块235。存储器控制单元230可以通过命令管理单元240来控制。
存储器控制单元230可以在命令管理单元240的控制下从命令队列CQ输出命令,并将输出的命令提供给半导体存储器件100。
当读取命令RCMD从命令队列CQ输出时,半导体存储器件100可以接收读取命令RCMD。半导体存储器件100可以响应于读取命令RCMD而将读取的数据提供给控制器200。读取数据可以包含储存于单个页中的数据位。存储器控制单元230的ECC块235可以通过错误校正码而对读取数据解码以校正读取数据中的错误。当解码成功或读取命令RCMD通过时,存储器控制单元230可以将指示读取命令RCMD通过的状态信息储存在信息队列SQ中,状态信息队列SQ被限定在存储器单元210中。当解码失败或该读取命令RCMD失败时,存储器控制单元230可以将指示读取命令RCMD失败的状态信息储存在状态信息队列SQ中。
在读取命令RCMD被输出之后,当参数设定命令PST从命令队列CQ输出时,半导体存储器件100可以改变内部设定值。
下一个读取命令RCMD可以基于先进先出法而从命令队列CQ输出。存储器控制单元230可以将下一个读取命令RCMD提供给半导体存储器件100。半导体存储器件100可以响应于下一个读取命令RCMD而将第二读取命令提供给控制器200。根据一个实施例,第二读取命令可以被暂时地储存于存储器控制单元230中或存储器单元210中。存储器控制单元230的ECC块235可以通过错误校正码而对读取数据解码。根据解码结果,存储器控制单元230可以将第二状态信息储存在状态信息队列SQ中。
通过上述方式,控制器200可以将命令队列CQ中储存的读取命令和参数设定命令顺序地提供给半导体存储器件100、接收对应的读取数据以及对接收到的读取数据解码。指示读取数据是否被成功解码或者对应的读取命令通过还是失败的信息可以作为状态信息而被储存在状态信息队列SQ中。
命令管理单元240可以控制存储器单元210、命令发生单元220和存储器控制单元230。命令管理单元240可以响应于来自主机的读取请求而控制命令发生单元220来产生多个命令。命令管理单元240可以控制存储器控制单元230来将储存在命令队列CQ中的命令传送至半导体存储器件100。
命令管理单元240可以参照状态信息队列SQ中储存的状态信息来管理命令队列CQ。命令队列CQ的开始地址和结束地址可以指示用于识别选中页中的数据的命令在命令队列CQ中的位置。开始地址和结束地址可以被限定在命令队列CQ的头地址HA与尾地址TA之间。
命令发生单元220可以将开始地址和结束地址提供给命令管理单元240。命令管理单元240可以识别开始地址和结束地址。
当从状态信息队列SQ输出的状态信息指示读取命令RCMD通过时,命令管理单元240可以将错误校正过的读取数据从存储器控制单元230输出给主机。根据一个实施例,当多个读取命令中的一个通过时,命令管理单元240可以中止剩余在命令队列CQ中的剩余的读取命令和剩余的参数设定命令,或者中止基于先进先出法而接着通过的读取命令的剩余读取命令和剩余参数设定命令。
当从状态信息队列SQ输出的状态信息指示读取命令RCMD失败时,命令管理单元240可以判断下一个读取命令RCMD是否通过。命令管理单元240可以基于从状态信息队列SQ输出的下一个状态信息来判断下一个读取命令RCMD是否通过。作为判断的结果,命令管理单元240可以中止剩余在命令队列CQ中的剩余的读取命令和剩余的参数设定命令。例如,当下一个读取命令RCMD通过时,可以中止基于先进先出法而接着该下一个读取命令RCMD的读取命令和参数设定命令。
不同于本发明,假设命令发生单元220产生单个读取命令来识别选中页的数据,并根据该读取命令是否失败来产生其它命令,例如参数设定命令和另一个读取命令。当对应的读取命令失败时,命令发生单元220产生参数设定命令和下一个读取命令以再次识别选中页的数据。因此,命令发生单元220需要停止当前正被执行的操作。例如,命令管理单元240可以将中断信号传送给命令发生单元220,且命令发生单元220可以响应于该中断信号而终止当前执行的操作。因此,可以增大命令发生单元220和控制器200的操作时间。当另一个命令(例如编程命令)已经输入至命令队列CQ时,命令发生单元220可以在命令队列CQ中搜索另一个命令(例如该编程命令)。随后,命令发生单元220可以中止搜索的命令,或者将用于识别选中页的数据的另一个命令添加至在搜索的命令的地址之前的地址。因此,可以增大命令发生单元220和控制器200的操作时间。
根据本发明的一个实施例,命令发生单元220可以产生用于识别选中页的数据的多个命令,并将产生的命令储存在命令队列CQ中。当从命令队列CQ输出的读取命令中的一个通过时,可以中止命令队列CQ中剩余的命令,或者可以中止基于先进先出法而接着通过的读取命令的命令。与取消同时,命令发生单元220可以执行其他操作。因此,可以改善命令发生单元220和控制器200的操作时间。
图5为图示根据一个实施例的控制器200的操作方法的流程图。
参照图4和图5,在步骤S110处,可以产生多个读取命令及多个参数设定命令。读取命令和参数设定命令可以用于识别选中页的数据。当对第一读取数据的解码失败时,命令发生单元220可以在命令管理单元240的控制下产生用于识别选中页的数据的读取命令和参数设定命令。在步骤S120处,产生的命令可以被储存在命令队列CQ中。
在步骤S130处,当读取命令和参数设定命令被顺序提供给半导体存储器件100时,可以判断读取命令中的每个是否通过。
当读取命令RCMD被提供给半导体存储器件100时,存储器控制单元230可以从半导体存储器件100接收与读取命令RCMD相对应的读取数据。存储器控制单元230可以对读取数据解码,并将关于读取数据是否被成功解码的信息作为第一状态信息而储存在状态信息队列SQ中。当参数设定命令被提供给半导体存储器件100时,半导体存储器件100可以改变内部设定值。当下一个读取命令RCMD被提供给半导体存储器件100时,存储器控制单元230可以从半导体存储器件100接收与下一个读取命令RCMD相对应的读取数据。存储器控制单元230可以对对应的读取数据解码,并将关于对应的读取数据是否被成功解码的信息作为第二状态信息储存在状态信息队列SQ中。第一状态信息和第二状态信息基于先进先出法而储存在状态信息队列SQ中。
命令管理单元240可以监控状态信息队列SQ。命令管理单元240可以检查状态信息队列SQ,并判断每个读取命令是否通过。
存储器控制单元230(其将读取命令和参数设定命令传送至半导体存储器件100,并将状态信息储存在状态信息队列SQ中)和命令管理单元240(其检查状态信息队列SQ,并判断每个命令是否通过)可以并行地执行这些操作。
在步骤S140处,当读取命令中的一个通过时,可以执行步骤S150。当读取命令全部失败(在步骤S140中为“否”)时,其可以意指在步骤S110处产生的命令全部都被提供给半导体存储器件100,且不管所有的读取命令和参数设定命令,对选中页的数据的识别都失败。
在步骤S150处,可以中止命令队列CQ中剩余的读取命令和剩余的设定命令,或者可以中止基于先进先出法而接着通过的读取命令的读取命令和参数设定命令。
图6为图示命令队列CQ的概念图。
参考图6,命令队列CQ可以在头地址HA与尾地址TA之间储存命令。头地址HA可以指示命令队列CQ中的第一命令CMD1的位置。命令队列CQ的最后命令CMDq可以通过尾地址TA来指定。命令队列CQ可以基于先进先出法来管理。头地址HA的命令可以首先被输入至命令队列CQ,并输出至半导体存储器件100。尾地址TA的命令可以最后被输入至命令队列CQ,并输出至半导体存储器件100。
通过命令发生单元220产生的命令CMD1至CMDp、RCMD1至RCMDx、PST1至PSTy以及CMDp+1至CMDq可以按照输入至命令队列CQ的顺序来储存在命令队列CQ中。储存在命令队列CQ中的命令可以具有命令队列CQ中的它们自己的地址。
例如,当第一命令CMD1至第p命令CMDp顺序地储存在命令队列CQ中时,命令发生单元220可以产生用于识别选中页的数据的第一读取命令RCMD1至第x读取命令RCMDx以及第一参数设定命令PST1至第y参数设定命令PSTy。产生的读取命令RCMD1至RCMDx以及参数设定命令PST1至PSTy可以按照输入至命令队列CQ的顺序来储存在命令队列CQ中。读取命令RCMD1至RCMDx以及参数设定命令PST1至PSTy可以顺序地储存在命令队列CQ的开始地址SA与命令队列CQ的结束地址EA之间。命令发生单元220可以将命令队列CQ的开始地址SA和命令队列CQ的结束地址EA通知给命令管理单元240。因此,命令管理单元240可以知道用于识别选中页的数据的命令位于命令队列CQ的开始地址SA与命令队列CQ的结束地址之间。
图6图示了交替地布置在命令队列CQ中的读取命令和参数设定命令。在图6中,第一读取命令RCMD1、第一参数设定命令PST1、第二读取命令RCMD2、第二参数设定命令PST2……第y参数设定命令PSTy以及第x读取命令RCMDx可以被顺序地布置在命令队列CQ中。然而,这仅为示例。又例如,命令发生单元220可以在命令队列CQ中布置不同数量和次序的读取命令和参数设定命令。换言之,在命令队列CQ中,读取命令和参数设定命令可以根据命令发生单元220的实施方法和ECC块235的实施方法来布置。
在读取命令RCMD1至RCMDx以及参数设定命令PST1至PSTy被储存在命令队列CQ中之后,命令发生单元220可以产生其他命令CMDp+1至CMDq。产生的第p+1命令CMDp+1至第q命令CMDq可以从结束地址EA开始以顺序的方式储存在命令队列CQ中。
第一命令CMD1至第p命令CMDp以及第p+1命令CMDp+1至第q命令CMDq可以不是用于识别选中页的数据的命令。在此条件下,命令CMD1至CMDq可以不被限制。例如,命令CMD1至CMDq中的每个可以为用于编程操作、擦除操作以及响应于另一读取请求的其他读取操作的命令中的一个。
储存在命令队列CQ中的所有命令可以基于先进先出法来输出。例如,存储器控制单元230可以从头地址HA顺序地增大操作指针(operation pointer)OP,并输出由操作指针OP所指向的命令。在第一命令CMD1至第p命令CMDp输出之后,可以输出用于识别选中页的数据的命令RCMD1至RCMDx以及PST1至PSTy。
图6图示了指向第一读取命令RCMD1的操作指针OP。第一读取命令RCMD1可以被输出。当第一读取命令RCMD1被提供给半导体存储器件100时,半导体存储器件100可以将与第一读取命令RCMD1相对应的第一读取数据传送至控制器200。
第一参数设定命令PST1可以被输出。半导体存储器件100可以响应于第一参数设定命令PST1而改变内部设定值。随后,第二读取命令RCMD2可以被输出。当第二读取命令RCMD2被提供给半导体存储器件100时,半导体存储器件100可以将与第二读取命令RCMD2相对应的第二读取数据传送至控制器200。
可以根据第一读取数据来判断第一读取命令RCMD1是否通过。可以对第一读取数据解码。状态信息可以被储存在状态信息队列SQ中,该状态信息指示第一读取数据是否被成功解码。基于该状态信息,可以判断第一读取命令RCMD1是否通过。当第一读取命令RCMD1通过时,命令管理单元240可以中止开始地址SA与结束地址EA之间的命令RCMD1至RCMDx以及PST1至PSTy之中剩余的命令。例如,当该第二读取命令RCMD2被输出,且检测到第一读取命令RCMD1通过时,可以中止开始地址SA与结束地址EA之间的接着第一读取命令RCMD1的剩余命令RCMD3至RCMDx以及PST2至PSTy。
图7为图示参照图5而描述的步骤S150的一个实施例的流程图。
参照图4、图6和图7,在步骤S310处,当检测到命令队列CQ中的读取命令中的一个通过时,命令管理单元240可以在开始地址SA与结束地址EA之间定义阴影指针SP。例如,命令管理单元240可以向存储器控制单元230询问操作指针OP的位置,并将该操作指针OP定义为阴影指针SP。此意指命令队列CQ将剩余的读取命令和剩余的参数设定命令储存在由阴影指针SP所指示的地址与结束地址EA之间。也即,在命令队列CQ中,基于先进先出法而接着通过的读取命令的读取命令和参数设定命令可以被储存在由阴影指针SP所指示的地址与结束地址EA之间。
在步骤S320处,命令管理单元240可以擦除由阴影指针SP所指示的地址的命令。在步骤S330处,命令管理单元240可以将阴影指针SP移动至命令队列CQ中的下一个地址。在步骤S340处,当阴影指针SP指示结束地址EA时,命令管理单元240可以中止结束地址EA的命令,并停止取消剩余的读取命令和剩余的参数设定命令。当阴影指针SP尚未指示结束地址EA时,可以重复步骤S320至S340。换言之,可以重复步骤S320至S340,直到阴影指针SP指示结束地址EA为止。根据另一实施例,可以在步骤S320之前执行步骤S330。
图8为图7中所示的一个实施例的概念图。
参照图8,第一命令CMD1至第p命令CMDp可以首先被输出。存储器控制单元230可以输出由操作指针OP所指向的命令,同时将操作指针OP从头地址HA顺序地移动至下一个地址。图8用阴影线图示了被输出的命令。
存储器控制单元230可以输出第一读取命令RCMD1、第一参数设定命令PST1和第二读取命令RCMD2,同时将操作指针OP移动至下一个地址。
当检测到命令队列CQ中的读取命令中的一个通过时,可以在开始地址SA与结束地址EA之间定义阴影指针SP。命令管理单元240可以向存储器控制单元230询问操作指针OP的位置,并定义阴影指针SP,使得阴影指针SP可以指向操作指针OP的地址。图8图示为操作指针OP指向第二读取命令RCMD2的地址。随后,命令管理单元240可以重复擦除由阴影指针SP所指示的地址的命令,并将阴影指针SP移动至下一个地址,直到阴影指针SP指示结束地址EA为止。命令管理单元240可以控制存储器单元210来擦除储存在由阴影指针SP所指示的地址处的命令。因此,可以中止命令队列CQ中剩余的读取命令RCMD3至RCMDx以及剩余的参数设定命令PST2至PSTy。
根据一个实施例,可以不从命令队列CQ输出剩余的命令,且可以中止剩余的读取命令和剩余的参数设定命令。因此,可以更迅速地中止剩余的命令。
图9为图示参照图5而描述的步骤S150的另一实施例的流程图。
参照图4、图6和图7,在步骤S410处,当检测到命令队列CQ中的读取命令中的一个通过时,命令管理单元240可以从命令队列CQ顺序地输出开始地址SA与结束地址EA之间的基于先进先出法而接着通过的读取命令的剩余读取命令。由于命令队列CQ基于先进先出法来操作,因此可以从命令队列CQ擦除被输出的命令。
在步骤S420处,命令管理单元240可以终止被输出的命令。
图10为图9中所示的实施例的概念图。
参照图10,第一命令CMD1至第p命令CMDp可以被输出。图10将被输出的命令图示为阴影线。操作指针OP可以到达开始地址SA。
随后,存储器控制单元230可以输出第一读取命令RCMD1、第一参数设定命令PST1以及第二读取命令RCMD2,同时将操作指针OP从开始地址SA移动至下一个地址。
例如,当第一读取命令RCMD1或第二读取命令RCMD2通过时,命令管理单元240可以向存储器控制单元230询问来确定操作指针OP的位置,并将开始地址SA与结束地址EA之间的基于先进先出法而接着通过的第一读取命令RCMD1或第二读取命令RCMD2的剩余命令顺序地输出,同时将操作指针OP移动至命令队列CQ中的下一个地址。图10示例性地图示了操作指针OP指向第二读取命令RCMD2。由操作指针OP指示的地址的命令可以通过命令管理单元240来顺序地输出。随后,可以终止基于先进先出法而接着通过的读取命令且通过操作指针OP来指示的被输出的命令。命令管理单元240可以终止被顺序地输出的读取命令。换言之,可以忽略基于先进先出法而接着通过的读取命令的被顺序地输出的读取命令。因此,可以中止命令队列CQ中的剩余的读取命令和剩余的参数设定命令。
根据一个实施例,甚至当基于先进先出法而接着通过的读取命令的剩余读取命令和剩余参数设定命令被中止时,也可以从命令队列CQ输出剩余的命令,而不需要参照图7和图8而描述的命令队列CQ中的取消过程。因此,可以简化命令管理单元240的设计。
图11为图示根据另一实施例的图1中所示的控制器200的框图。图2为图11中所示的第一命令队列CQ1和第二命令队列CQ2的概念图。
参照图11和图12,控制器300可以包含存储器单元310、命令发生单元220、存储器控制单元230和命令管理单元240。
存储器单元310可以包含第一命令队列CQ1、第二命令队列CQ2和状态信息队列SQ。第一命令队列CQ1可以包含第一头地址HA1和第一尾地址TA1。第二命令队列CQ2可以包含第二头地址HA2和第二尾地址TA2。存储器单元310可以将用于识别选中页中的数据的多个命令RCMD1至RCMDx以及PST1至PSTy储存在第一命令队列CQ1中。命令发生单元220可以将其他命令CMD1至CMDq储存在第二命令队列CQ2中。
命令发生单元220可以将与来自主机的请求相对应的命令储存在第二命令队列CQ2中。储存在第二命令队列CQ2中的命令CMD1至CMDq可以从第二头地址HA2顺序地输出,且被提供给半导体存储器件100。
例如,当操作指针OP指示第p命令CMDp时,第p命令CMDp可以对应于与来自主机的读取请求相对应的命令。第p命令CMDp以及指示选中页的物理地址可以被提供给半导体存储器件100。半导体存储器件100可以将对应的读取数据传送至控制器300。存储器控制单元230可以对该读取数据解码,并将关于该读取数据是否被成功解码的信息储存在状态信息队列SQ中。当作为检查状态信息队列SQ的结果而第p命令CMDp被确定为失败时,命令管理单元240可以控制命令发生单元220来产生用于识别选中页的数据的命令RCMD1至RCMDx以及PST1至PSTy,并将产生的命令RCMD1至RCMDx以及PST1至PSTy输入至单独的命令队列CQ1。
然后,操作指针OP可以被锁定至第二命令队列CQ2中的当前地址,且可以基于先进先出法来输出第一命令队列CQ1中的命令RCMD1至RCMDx以及PST1至PSTy。
根据此实施例,用于识别选中页的数据的命令RCMD1至RCMDx以及PST1至PSTy可以被储存在第一命令队列CQ1中。当从第一命令队列CQ1输出的读取命令中的一个通过时,可以为了取消而从第一命令队列CQ1擦除基于先进先出法而接着通过的读取命令的剩余读取命令和剩余参数设定命令。可以为了取消而初始化第一命令队列CQ1。由于用于识别选中页中的数据的命令RCMD1至RCMDx以及PST1至PSTy储存在第一命令队列CQ1中,因此可以中止剩余的命令,而无需参照图6而描述的管理开始地址SA和结束地址EA。因此,可以简化命令管理单元240的设计。
图13为图示参照图4和图11所描述的存储器控制单元230的视图。图14为图示包含于读取数据中的码字CW1至CW4的概念图。图15为图示图13中所示的解码状态表DT的概念图。
参照图13,存储器控制单元230可以包含存储器控制器431、数据缓冲器432、ECC块235和多路复用块MUX。
存储器控制器431可以控制数据缓冲器432、ECC块235和多路复用块MUX。存储器控制器431可以响应于命令管理单元240而从命令队列CQ输出读取命令RCMD,并将输出的读取命令RCMD提供给半导体存储器件100。来自半导体存储器件100的读取数据可以被储存于数据缓冲器432中。存储器控制器431可以控制多路复用块MUX来将储存在数据缓冲器432中的读取数据中的码字的部分或全部传送至ECC块235。存储器控制器431可以查阅解码状态表DT。
从半导体存储器件100传送来的读取数据可以包含储存在单个页中的数据位。该数据位可以划分成多个码字。例如,如图14中所示,该读取数据可以包含第一码字CW1至第四码字CW4。
ECC块235可以以码字为单位来执行解码操作。ECC块235可以通过存储器控制器431来控制。ECC块235可以通过多路复用块MUX来接收一个或多个码字,并根据错误校正码来对码字中的每一个解码。每当存储器控制单元230接收与读取命令RCMD1至RCMDx相对应的读取数据时,ECC块235可以接收读取数据中的码字。此外,ECC块235可以将关于接收到的码字是否被成功解码的信息反馈至存储器控制器431。根据一个实施例,ECC块235可以将错误校正过的码字暂时地储存在存储器单元210中。
根据一个实施例,存储器控制器431可以储存解码状态表DT。解码状态表DT可以包含关于对码字中的每个的解码是通过还是失败的信息。如图15中所示,存储器控制器431的解码状态表DT可以包含关于第一码字CW1至第四码字CW4中的每个是否被成功解码的信息。存储器控制器431可以从ECC块235接收关于每个码字是否成功的信息,并基于接收到的信息来更新解码状态表DT。例如,随着半导体存储器件100响应于更多的读取命令和参数设定命令而执行读取操作,第一码字CW1至第四码字CW4中的更多个可以被成功地解码。
图15图示了解码状态表DT,解码状态表DT包含指示对第一码字CW1和第二码字CW2的译码是否通过以及对第三码字CW3和第四码字CW4的解码是否失败的信息。例如,当ECC块235成功对第三码字CW3成功解码时,存储器控制器431可以在解码状态表DT中将与第三码字CW3相对应的信息从失败更新成通过。当ECC块235在对第一码字CW1至第四码字CW4中的一个或多个解码失败时,存储器控制器431可以将指示对应的读取命令失败的状态信息储存在状态信息队列SQ中。每当ECC块235成功地对第一码字CW1至第四码字CW4中的每个解码时,存储器控制器431可以将指示对应的读取命令通过的状态信息储存在状态信息队列SQ中。
根据一个实施例,存储器控制器431可以通过查阅解码状态表DT来控制多路复用块MUX以仅将码字CW1至CW4中解码失败的一个从数据缓冲器432传送至ECC块235。因此,ECC块235可以不重复对所有的读取数据的解码。因此,可以改善对读取数据解码所需的时间量。
图13图示了包含于存储器控制单元230中的解码状态表DT。然而,这仅为示例。在另一示例中,解码状态表DT可以被储存于存储器单元210中。
图16为图示参照图4和图11而描述的控制器200和控制器300的实施例1200的框图。
参照图16,控制器1200可以包含存储器单元1210、处理单元1220、主机接口1230、存储器接口1240和错误校正块1250。
处理单元1220可以控制控制器1200的常规操作。存储器单元1210可以被用作处理单元1220的操作存储器、在图4和图11中所示的半导体存储器件100与主机之间的高速缓冲存储器和/或在半导体存储器件100与主机之间的缓冲存储器。处理单元1220和存储器单元1210可以当作图4和图11中所示的命令发生单元220和命令管理单元240。例如,处理单元1220可以将程序命令、数据文件和数据结构加载在存储器单元1210中,并通过运行加载的数据来执行命令发生单元220和命令管理单元240的功能。
另外,存储器单元1210可以被用作图4和图11中所示的存储器单元210和存储器单元310。图16图示为提供一个存储器单元1210。然而,两个或更多个存储器单元可以被提供。
主机接口1230可以包含用于在主机与控制器1200之间交换数据的协议。例如,控制器1200可以通过一种或多种协议来与主机通信,诸如通用串行总线(USB)协议、多媒体卡(MMC)协议、***组件互连(PCI)协议、快速***组件互连(PCI-E,PCI-express)协议、高级技术附件(ATA)协议、串行高级技术附件(SATA)协议、并行高级技术附件(PATA)协议、小型计算机***接口(SCSI)协议、增强型小盘接口(ESDI)协议、集成驱动电路(IDE)协议、私有协议等。
存储器接口1240可以与半导体存储器件100接口。错误校正块1250可以通过使用错误校正码来对从半导体存储器件100接收的读取数据解码。存储器接口1240和错误校正块1250可以执行图4和图11中所示的存储器控制单元230的功能。
图17为图示图1中所示的存储***50的应用示例(2000)的框图。
参照图17,存储***2000可以包含半导体存储器件2100和控制器2200。半导体存储器件2100可以包含多个半导体数据芯片。这多个半导体数据芯片可以被划分成多个组。
在图17中,多个组可以分别通过第一通道CH1至第k通道CHk来与控制器2200通信。每个半导体数据芯片可以以与以上参照图1至图3所描述的半导体存储器件100基本上相同的方式来配置和操作。
每个组可以通过单个公共通道来与控制器2200通信。控制器2200可以以与以上参照图16所描述的控制器1200基本上相同的方式来配置,且可以被配置成通过多个信道CH1至CHk来控制半导体存储器件2100的多个数据芯片。
图17图示了耦接到单个通道的多个半导体数据芯片。然而,存储***200可以被修改,使得单个半导体数据芯片可以耦接到单个通道。
根据一个实施例,命令发生单元可以产生用于识别选中页的数据的命令,并将产生的命令储存在命令队列中。当从命令队列读取的读取命令通过时,可以中止对应的命令之中剩余在命令队列中的命令。命令发生单元可以执行其他操作。因此,可以改善命令发生单元和控制器的操作时间。
根据一个实施例,可以提供具有改善的操作时间的控制器及其操作方法。
对于本领域技术人员而言明显的是,在不脱离本发明的精神和范围的情况下,可以对本发明的上述示例性实施例作出各种修改。因此,本发明意在涵盖落入所附权利要求及其等价的范围之内的所有变型。
Claims (20)
1.一种用于控制半导体存储器件的操作方法,所述操作方法包括:
将多个读取命令储存在基于先进先出法来管理的命令队列中;
将所述读取命令中的一个提供给半导体存储器件;
基于读取数据来判断提供的读取命令通过还是失败,所述读取数据响应于提供的读取命令而从半导体存储器件提供;以及
当提供的读取命令通过时,中止命令队列中的剩余的读取命令。
2.如权利要求1所述的操作方法,
其中,半导体存储器件包含多个页,以及
其中,所述多个读取命令用于识别储存在所述页之一中的数据。
3.如权利要求1所述的操作方法,
其中,判断的步骤对读取数据执行ECC解码,以及
其中,当ECC解码通过时,提供的读取命令通过。
4.如权利要求1所述的操作方法,还包括:
当提供的读取命令失败时,用剩余的读取命令来重复提供的步骤和判断的步骤。
5.如权利要求1所述的操作方法,还包括:
产生用来改变半导体存储器件的设定值的多个参数设定命令,其中,所述多个参数设定命令与所述多个读取命令一起储存在命令队列中;以及
将所述多个参数设定命令中的一个提供给半导体存储器件。
6.如权利要求5所述的操作方法,中止的步骤包括:当提供的读取命令通过时,中止命令队列中的剩余的参数设定命令。
7.如权利要求5所述的操作方法,其中,设定值对应于在半导体存储器件的读取操作期间施加至半导体存储器件的字线的电压。
8.如权利要求1所述的操作方法,
其中,命令队列包括从头地址至尾地址的存储空间,以及
其中,所述多个读取命令储存在头地址与尾地址之间的从开始地址至结束地址的存储空间中。
9.如权利要求8所述的操作方法,其中,中止的步骤包括:
当提供的读取命令通过时,产生阴影指针,所述阴影指针指向与剩余的读取命令中的第一个相对应的地址;以及
擦除由所述阴影指针所指向的剩余读取命令,同时将所述阴影指针从当前的地址移动至下一个地址,直到所述阴影指针指向结束地址为止。
10.如权利要求8所述的操作方法,其中,中止的步骤包括:顺序地停止开始地址与结束地址之间的剩余读取命令。
11.如权利要求1所述的操作方法,其中,中止的步骤擦除命令队列中的在开始地址与结束地址之间的存储空间中储存的剩余读取命令。
12.如权利要求1所述的操作方法,其中,当对包含在读取数据中的一个或多个码字的ECC解码失败时,判断的步骤确定所提供的读取命令失败。
13.如权利要求12所述的操作方法,其中,对响应于先前提供的读取命令而先前从半导体存储器件提供的读取数据中的ECC解码失败的一个或多个码字执行ECC解码。
14.一种控制半导体存储器件的控制器,所述控制器包括:
命令队列,基于先进先出法来管理;
命令发生单元,适用于将多个读取命令储存在命令队列中;
存储器控制单元,适用于:
将所述多个读取命令中的一个提供给半导体存储器件;以及
基于响应于提供的读取命令而从半导体存储器件提供的读取数据来判断提供的读取命令通过还是失败;以及
命令管理单元,适用于当提供的数据通过时中止剩余的读取命令。
15.如权利要求14所述的控制器,
其中,半导体存储器件包含多个页,以及
其中,所述多个读取命令用于识别储存在所述多个页之一中的数据。
16.如权利要求14所述的控制器,其中,当提供的读取命令失败时,存储器控制器用剩余的读取命令来重复提供的步骤和判断的步骤。
17.如权利要求14所述的控制器,其中,命令发生单元产生用来改变半导体存储器件的设定值的参数设定命令,并将参数设定命令与所述多个读取命令一起储存在命令队列中,
存储器控制单元将所述参数设定命令中的一个提供给半导体存储器件,以及
命令管理单元中止命令队列中的剩余的参数设定命令。
18.如权利要求14所述的控制器,其中,存储器控制单元包括:
数据缓冲器,适用于储存响应于提供的读取命令而从半导体存储器件提供的读取数据;
错误校正块,适用于以单个码字为单位来对读取数据执行ECC解码;
解码状态表,适用于储存对读取数据中包含的每个码字的ECC解码的通过或失败信息;以及
多路复用块,适用于以单个码字为单位将读取数据从数据缓冲器提供至错误校正块;以及
存储器控制器,适用于:
通过查阅解码状态表来控制多路复用块以将响应于先前提供的读取命令而先前从半导体存储器件提供的读取数据中ECC解码失败的一个或多个码字提供给错误校正块;以及
根据ECC解码的结果来更新储存在解码状态表中的失败信息。
19.如权利要求14所述的控制器,其中,当对读取数据中包含的一个或多个码字的ECC解码失败时,存储器控制单元确定所提供的读取命令失败。
20.一种用于控制包括多个页的半导体存储器件的操作方法,所述操作方法包括:
将用于识别选中页中的数据的多个命令储存在基于先进先出法来管理的命令队列中;
将所述命令中的一个提供给半导体器件;
当提供的读取命令失败时,重复提供剩余的读取命令;以及
当提供的读取命令通过时,中止剩余的读取命令。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/754,014 US9542269B1 (en) | 2015-06-29 | 2015-06-29 | Controller controlling semiconductor memory device and operating method thereof |
US14/754,014 | 2015-06-29 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106297865A true CN106297865A (zh) | 2017-01-04 |
CN106297865B CN106297865B (zh) | 2020-09-25 |
Family
ID=57605289
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610086289.2A Active CN106297865B (zh) | 2015-06-29 | 2016-02-15 | 控制半导体存储器件的控制器及其操作方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9542269B1 (zh) |
KR (1) | KR102281946B1 (zh) |
CN (1) | CN106297865B (zh) |
TW (1) | TWI666649B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109390025A (zh) * | 2017-08-07 | 2019-02-26 | 慧荣科技股份有限公司 | 存储器装置以及操作指令错误处理方法 |
CN109753455A (zh) * | 2017-11-08 | 2019-05-14 | 爱思开海力士有限公司 | 存储器控制器及其操作方法 |
CN110245097A (zh) * | 2018-03-08 | 2019-09-17 | 爱思开海力士有限公司 | 存储器控制器及具有存储器控制器的存储器*** |
CN111341370A (zh) * | 2018-12-19 | 2020-06-26 | 爱思开海力士有限公司 | 半导体存储器装置、控制器、存储装置及其操作方法 |
CN112037827A (zh) * | 2019-06-04 | 2020-12-04 | 爱思开海力士有限公司 | 半导体存储器装置、其操作方法及存储器*** |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6542076B2 (ja) * | 2015-08-28 | 2019-07-10 | 東芝メモリ株式会社 | メモリシステム |
JP6239078B1 (ja) * | 2016-11-04 | 2017-11-29 | ウィンボンド エレクトロニクス コーポレーション | 半導体記憶装置および読出し方法 |
KR102389542B1 (ko) * | 2017-12-12 | 2022-04-25 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
US10635350B2 (en) | 2018-01-23 | 2020-04-28 | Western Digital Technologies, Inc. | Task tail abort for queued storage tasks |
KR20190092937A (ko) * | 2018-01-31 | 2019-08-08 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러 및 그 동작 방법 |
KR102524916B1 (ko) * | 2018-03-13 | 2023-04-26 | 에스케이하이닉스 주식회사 | 저장 장치 및 그 동작 방법 |
US11029746B2 (en) * | 2019-05-30 | 2021-06-08 | Micron Technology, Inc. | Dynamic power management network for memory devices |
KR20210003370A (ko) | 2019-07-02 | 2021-01-12 | 삼성전자주식회사 | 하드웨어 로직을 이용하여 통신 오버헤드를 감소시킨 스토리지 장치 |
KR20210142974A (ko) * | 2020-05-19 | 2021-11-26 | 에스케이하이닉스 주식회사 | 저장 장치 및 그 동작 방법 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101252020A (zh) * | 2007-02-22 | 2008-08-27 | 海力士半导体有限公司 | 存储器件的读取方法 |
CN102314944A (zh) * | 2010-07-09 | 2012-01-11 | 海力士半导体有限公司 | 半导体存储器件的操作方法 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6976204B1 (en) * | 2001-06-15 | 2005-12-13 | Advanced Micro Devices, Inc. | Circuit and method for correcting erroneous data in memory for pipelined reads |
JP4564390B2 (ja) | 2005-03-31 | 2010-10-20 | 東芝ストレージデバイス株式会社 | 情報処理装置 |
TWI428918B (zh) | 2009-09-29 | 2014-03-01 | Silicon Motion Inc | 記憶裝置以及記憶裝置之資料存取方法 |
US8688899B2 (en) | 2010-09-28 | 2014-04-01 | Fusion-Io, Inc. | Apparatus, system, and method for an interface between a memory controller and a non-volatile memory controller using a command protocol |
WO2012162188A2 (en) | 2011-05-20 | 2012-11-29 | Soft Machines, Inc. | Decentralized allocation of resources and interconnect structures to support the execution of instruction sequences by a plurality of engines |
JP5547148B2 (ja) | 2011-09-13 | 2014-07-09 | 株式会社東芝 | メモリデバイス |
US8667368B2 (en) * | 2012-05-04 | 2014-03-04 | Winbond Electronics Corporation | Method and apparatus for reading NAND flash memory |
KR101932920B1 (ko) | 2012-09-14 | 2019-03-18 | 삼성전자 주식회사 | 비휘발성 메모리 카드를 제어하는 호스트, 이를 포함하는 시스템 및 이의 동작 방법 |
JP2014140111A (ja) * | 2013-01-21 | 2014-07-31 | Sony Corp | コントローラ、情報処理システム、コントローラの制御方法およびプログラム |
US9256384B2 (en) | 2013-02-04 | 2016-02-09 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Method and system for reducing write latency in a data storage system by using a command-push model |
KR102143517B1 (ko) | 2013-02-26 | 2020-08-12 | 삼성전자 주식회사 | 에러 정정회로를 포함하는 반도체 메모리 장치 및 반도체 메모리 장치의 동작방법 |
KR20140146275A (ko) * | 2013-06-14 | 2014-12-26 | 삼성전자주식회사 | 불휘발성 메모리 장치를 제어하는 메모리 컨트롤러의 동작 방법 및 불휘발성 메모리 시스템 |
TWI534829B (zh) * | 2013-08-12 | 2016-05-21 | 華邦電子股份有限公司 | 序列式nand快閃記憶體 |
-
2015
- 2015-06-29 US US14/754,014 patent/US9542269B1/en active Active
- 2015-07-14 TW TW104122790A patent/TWI666649B/zh active
- 2015-07-28 KR KR1020150106669A patent/KR102281946B1/ko active IP Right Grant
-
2016
- 2016-02-15 CN CN201610086289.2A patent/CN106297865B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101252020A (zh) * | 2007-02-22 | 2008-08-27 | 海力士半导体有限公司 | 存储器件的读取方法 |
CN102314944A (zh) * | 2010-07-09 | 2012-01-11 | 海力士半导体有限公司 | 半导体存储器件的操作方法 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109390025A (zh) * | 2017-08-07 | 2019-02-26 | 慧荣科技股份有限公司 | 存储器装置以及操作指令错误处理方法 |
CN109753455A (zh) * | 2017-11-08 | 2019-05-14 | 爱思开海力士有限公司 | 存储器控制器及其操作方法 |
CN110245097A (zh) * | 2018-03-08 | 2019-09-17 | 爱思开海力士有限公司 | 存储器控制器及具有存储器控制器的存储器*** |
CN111341370A (zh) * | 2018-12-19 | 2020-06-26 | 爱思开海力士有限公司 | 半导体存储器装置、控制器、存储装置及其操作方法 |
CN111341370B (zh) * | 2018-12-19 | 2023-10-10 | 爱思开海力士有限公司 | 半导体存储器装置、控制器、存储装置及其操作方法 |
CN112037827A (zh) * | 2019-06-04 | 2020-12-04 | 爱思开海力士有限公司 | 半导体存储器装置、其操作方法及存储器*** |
CN112037827B (zh) * | 2019-06-04 | 2024-06-07 | 爱思开海力士有限公司 | 半导体存储器装置、其操作方法及存储器*** |
Also Published As
Publication number | Publication date |
---|---|
US9542269B1 (en) | 2017-01-10 |
US20160378590A1 (en) | 2016-12-29 |
TWI666649B (zh) | 2019-07-21 |
TW201701283A (zh) | 2017-01-01 |
KR20170002256A (ko) | 2017-01-06 |
CN106297865B (zh) | 2020-09-25 |
KR102281946B1 (ko) | 2021-07-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106297865A (zh) | 控制半导体存储器件的控制器及其操作方法 | |
KR102329174B1 (ko) | Nand형 플래시 메모리 및 그 독출 방법 | |
CN110097913A (zh) | 存储器控制器及其操作方法 | |
US10885988B2 (en) | Method of controlling memory device including pluralities of memory cells | |
CN106326028A (zh) | 具有不同奇偶校验区的存储器件 | |
CN106251903A (zh) | 存储***及其操作方法 | |
US20200356307A1 (en) | Input/Output Size Control between a Host System and a Memory Sub-System | |
CN107919157A (zh) | 存储器装置及存储器装置的操作方法 | |
CN106325765B (zh) | 用于通过多个通道来控制半导体存储器件的存储*** | |
CN109427400A (zh) | 存储器装置及其操作方法 | |
TW201308081A (zh) | 記憶體裝置 | |
CN109658969A (zh) | 存储器***及其操作方法 | |
CN107025923A (zh) | 半导体存储器装置及其操作方法 | |
KR102603243B1 (ko) | 반도체 메모리 장치 및 그것의 동작 방법 | |
CN106373610A (zh) | 半导体存储器件及其操作方法 | |
CN109147854A (zh) | 数据存储装置及其操作方法 | |
CN110176261A (zh) | 存储装置及其操作方法 | |
CN109933540A (zh) | 存储装置及其操作方法 | |
CN103971717B (zh) | 存储器***和由存储器***执行的控制方法 | |
CN109656469A (zh) | 用于控制一个或多个存储器装置的控制器及其操作方法 | |
CN111258918A (zh) | 数据存储装置及其操作方法、存储*** | |
CN109697995A (zh) | 半导体存储器装置及其操作方法 | |
US9507710B2 (en) | Command execution using existing address information | |
CN109426627A (zh) | 数据存储装置及其操作方法 | |
CN108461099A (zh) | 半导体存储装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |