CN100578660C - 使用自适应接口定时的稳健而高速的存储器存取 - Google Patents
使用自适应接口定时的稳健而高速的存储器存取 Download PDFInfo
- Publication number
- CN100578660C CN100578660C CN200580046330.3A CN200580046330A CN100578660C CN 100578660 C CN100578660 C CN 100578660C CN 200580046330 A CN200580046330 A CN 200580046330A CN 100578660 C CN100578660 C CN 100578660C
- Authority
- CN
- China
- Prior art keywords
- nand flash
- flash memory
- data
- page
- memory
- 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.)
- Active
Links
- 230000015654 memory Effects 0.000 title claims abstract description 390
- 230000003044 adaptive effect Effects 0.000 title abstract description 16
- 238000000034 method Methods 0.000 claims abstract description 49
- 238000012937 correction Methods 0.000 claims abstract description 18
- 238000003860 storage Methods 0.000 claims description 73
- 238000001514 detection method Methods 0.000 claims description 7
- 238000004891 communication Methods 0.000 description 10
- 238000005516 engineering process Methods 0.000 description 10
- 238000013461 design Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 8
- 238000012545 processing Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 238000009434 installation Methods 0.000 description 3
- GOLXNESZZPUPJE-UHFFFAOYSA-N spiromesifen Chemical compound CC1=CC(C)=CC(C)=C1C(C(O1)=O)=C(OC(=O)CC(C)(C)C)C11CCCC1 GOLXNESZZPUPJE-UHFFFAOYSA-N 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000005465 channeling Effects 0.000 description 1
- 230000000052 comparative effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000001105 regulatory effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
Classifications
-
- 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
- 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/1068—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 in sector programmable memories, e.g. flash disk
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4403—Processor initialisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
-
- 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/26—Sensing or reading circuits; Data output circuits
-
- 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/32—Timing circuits
-
- 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/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/50—Marginal testing, e.g. race, voltage or current testing
-
- 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/50—Marginal testing, e.g. race, voltage or current testing
- G11C29/50012—Marginal testing, e.g. race, voltage or current testing of timing
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1006—Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1015—Read-write modes for single port memories, i.e. having either a random port or a serial port
- G11C7/1045—Read-write mode select circuits
-
- 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
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/04—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
-
- 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/04—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
- G11C16/0483—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2216/00—Indexing scheme relating to G11C16/00 and subgroups, for features not directly covered by these groups
- G11C2216/12—Reading and writing aspects of erasable programmable read-only memories
- G11C2216/14—Circuits or methods to write a page or sector of information simultaneously into a nonvolatile memory, typically a complete row or word line in flash memory
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Quality & Reliability (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
Abstract
本发明说明使用自适应接口定时对存储器装置(例如NAND闪速存储器)进行快速而可靠地存取的技术。对于使用自适应接口定时的存储器存取,以初始存储器存取速率对NAND闪速存储器进行存取,所述初始存储器存取速率可以是为实现可靠的存储器存取而预测的速率。然后使用经常对NAND闪速存储器采用的纠错编码(ECC)来确保对NAND闪速存储器的可靠存取。对于读取操作,从NAND闪速存储器一次读取一个数据页面,且ECC确定从NAND闪速存储器读取的所述页面是否包含任何错误。如果遇到错误,则选择一较慢的存储器存取速率,且以新速率再次从NAND闪速存储器读取带有错误的页面。所述技术可用于向NAND闪速存储器写入数据。
Description
技术领域
本发明大体而言涉及电子电路,且更具体而言涉及用于对存储器装置进行存取的技术。
背景技术
无线通信装置(例如蜂窝电话)能够提供各种通信服务,例如声音和分组数据。更新一代的无线装置可能还能够提供增强的功能,且可用作个人数字助理(PDA)、网络终端机、计算装置等。随着无线装置变得更加复杂且提供更多的功能和特点,必然需要更强的计算能力和更大的存储器。通常需要大存储器来存储用于支持声音及/或数据通信以及其他功能和特点的程序代码和数据。
各种类型的存储器可用于无线装置,例如静态随机存取存储器(SRAM)、同步动态RAM(SDRAM)和闪速存储器。SRAM和SDRAM是易失性存储器,其在断电时会丢失存储在其中的数据。可以一随机方式来对SRAM和SDRAM进行存取,随机方式是大多数处理器对存储器的程序代码和数据进行存取的方式。因此,SRAM及/或SDRAM常用作无线装置中的主运行时存储器。
闪速存储器是非易失性存储器,其在即使断电之后仍可保留存储在其中的数据。NAND闪速存储器是一种类型的闪速存储器,其具有高密度存储器设计,且与其他类型的存储器相比具有某些优点。具体而言,NAND闪速存储器具有大存储容量(例如1吉比特或以上)、良好的速度以便进行持续存储器存取、及低廉的成本。然而,NAND闪速存储器也具有某些固有缺点,例如随机存储器存取性能不佳。因此,通常以页面为单位来对NAND闪速存储器进行存取,一次一个页面,每一页面具有特定大小(例如512个字节)。
随着无线装置中的存储器成本高得越来越令人无法接受,NAND闪速存储器成为用作这些装置的大容量存储单元的良好候选者。然而,因为NAND闪速存储器的结构不适于随机存取,所以不能直接从NAND闪速存储器执行程序代码。相反,SRAM及/或SDRAM可用来为需要以随机方式存取的程序代码和数据提供运行时存储。
包含NAND闪速存储器和SRAM/SDRAM二者的存储器架构能够以较低成本提供具有随机存取的大存储容量。对于具有这一存储器架构的装置而言,可将程序代码装载到NAND闪速存储器中以便永久性存储。在接通电源时,该装置执行一“引导”,此需要(除其他事情之外)将程序代码从NAND闪速存储器传送到SRAM/SDRAM。因为程序代码可能很大(例如几兆比特),引导时间可能很长(例如约为几秒)。引导时间长可能导致用户不满,且对于可频繁断电及通电的装置(例如蜂窝电话),这一点尤其不合意。
因此,所属技术领域中需要具有对NAND闪速存储器进行快速存取以便进行数据传送的技术。
发明内容
本文阐述使用自适应接口定时对存储器装置(例如NAND闪速存储器)进行快速而可靠地存取的技术。通常可以较高速率而非最差情形条件(通常不会遇到)所需的慢速存储器存取速率来对NAND闪速存储器进行可靠存取。存储器存取速率由用于每一NAND闪速存储器存取的持续时间来定义,并与其成反比关系。对于使用自适应接口定时的存储器存取,首先以初始存储器存取速率来对NAND闪速存储器进行存取,初始存储器存取速率可以是为实现快速、可靠的存储器存取而预测的存储器存取速率。然后使用通常为NAND闪速存储器采用的纠错编码(ECC)来确保NAND闪速存储器的可靠存取。对于读取操作,从NAND闪速存储器每次读取一个数据页面,且ECC确定从NAND闪速存取器读取的页面是否包含任何错误。如果遇到错误,则选择较慢的存储器存取速率,且以该较慢的存储器存取速率从NAND闪速存储器再次读取具有错误的页面。这些技术还可用于将数据写入NAND闪速存储器。
在一实施例中,NAND闪速存储器控制器包括控制单元和检测单元。为了从NAND闪速存储器读取,控制单元获得用于第一存储器存取速率的第一(或初始)设定值。控制单元根据第一设定值产生各种控制信号来以第一存储器存取速率从NAND闪速存储器读取第一数据页面。检测单元确定第一读取数据页面是否包含任何错误。如果第一页面包含错误,则控制单元获得用于第二存储器存取速率的第二设定值,该第二存储器存取速率低于第一存储器存取速率。继续进行读取页面、检查页面是否有错误、并选择更慢的存储器存取速率的过程,直到从NAND闪速存储器成功读取该页面为止。然后,以相同方式从NAND闪速存储器读取每一相继页面,例如从使得成功读取前一页面的存储器存取速率开始。如下文所述,NAND闪速存储器控制器还可以自适应接口定时写入NAND闪速存储器。
下文将进一步详细说明本发明的各个方面及实施例。
附图说明
结合图式阅读下文所作详细说明,将更易得知本发明的特征及性质,在所有图式中,相同的参考字符都具有相同的标识意义,且其中:
图1显示无线通信装置的方块图;
图2显示NAND闪速存储器的实例性结构;
图3显示NAND闪速存储器控制器的方块图;
图4显示用于从NAND闪速存储器读取数据的定时图;
图5显示用于向NAND闪速存储器写入数据的定时图;
图6A和6B显示对于每一存储器存取,为分别具有两个及四个输入时钟周期的存储器存取速率产生读取允许(RE_n)信号和写入允许(WE_n)信号;
图7显示用于以自适应接口定时从NAND闪速存储器读取数据的过程;及
图8显示用于以自适应接口定时向NAND闪速存储器写入数据的过程。
具体实施方式
本文所用“实例性”一词的含义是指“用作一实例、示例或例证”。在本文中,任何称为“实例性”的实施例或设计均未必应视为与其它实施例或设计相比较佳或有利。
本文所述的存储器存取技术可用于各种电子装置,例如用于无线通信、个人电子装置、计算、联网等的电子装置。为了清楚起见,针对用于与一个或多个无线通信系统进行通信的无线通信装置来阐述这些技术,所述无线通信系统例如为码分多址(CDMA)系统、全球移动通信(GSM)系统、及/或一些其他系统。CDMA系统可实施cdma2000、宽带-CDMA(W-CDMA)、或一些其他CDMA无线存取技术(RAT)。W-CDMA和GSM是通用移动通信系统(UMTS)的一部分,在来自名为“第3代合作伙伴计划”(3GPP)联盟的文件中说明了UMTS。在来自名为“第3代合作伙伴计划2”(3GPP2)联盟的文件中说明了cdma2000。3GPP及3GPP2文件可公开得到。
图1显示可支持cdma2000、GSM、W-CDMA、及/或其他无线系统/网络的无线通信装置100的方块图。无线装置100可以是蜂窝移动电话、手机、手持装置、无线模块、PDA、终端机、调制解调器、或一些其他设备。无线装置100能够经由接收路径及发送路径提供双向通信。对于接收路径,基站发送的信号由天线112接收,并提供至接收器单元(RCVR)114。接收器单元114对所接收的信号进行调节并数字化,并向数字部分120提供输入样本以便进一步处理。对于发送路径,发射器单元(TMTR)116接收并调节要由无线装置100发送的数据,并产生经调制的信号,该经调制的信号通过天线112发送至基站。
数字部分120包括为无线装置100执行数字处理的各种处理、接口和存储器单元。对于图1所示实施例,数字部分120包括调制解调器处理器120、主处理器124、主控制器130、SRAM 132、NAND闪速存储器控制器140、SDRAM控制器142、及外部总线控制器144。调制解调器处理器122为数据发送和接收执行处理(例如编码、调制、解调、解码等)。主处理器124可为音频、视频、图形、及/或其他应用(例如多路呼叫、网页浏览、媒体播放器、游戏、用户界面等)执行处理。数字部分120可包括用于不同功能的多个处理器。
NAND闪速存储器控制器140有利于实现数字部分120与NAND闪速存储器150之间的数据传送。SDRAM控制器142有利于实现数字部分120与SDRAM 152之间的数据传送。外部总线控制器144可指导NAND闪速存储器控制器140和SDRAM控制器142的运行,并可有利于实现NAND闪速存储器150与SDRAM 152之间的数据传送。外部总线控制器144可进一步指导及/或介接数字部分120外部的其他单元和装置,例如(举例而言)液晶显示器(LCD)、串行总线、输入装置(例如键盘)等。
主控制器130可指导数字部分120中的各种处理和接口单元的运行。SRAM 132存储由数字部分120中的控制器和处理器使用的程序代码和数据。数字部分120中的各种单元可经由一条或多条总线134进行通信。
可使用一个或多个数字信号处理器(DSP)、微处理器、精简指令集计算(RISC)处理器、复杂指令集计算(CISC)处理器等来构建数字部分120中的控制器和处理器。数字部分120中的单元可制造在一个或多个应用专用集成电路(ASIC)或一些其他类型的集成电路(IC)上。
NAND闪速存储器150和SDRAM 152是在数字部分120外部的存储器装置,并为数字部分120中的处理单元提供大容量存储。NAND闪速存储器150为由数字部分120使用的程序代码和数据提供非易失性存储。NAND闪速存储器150可用某些其他类型的非易失性存储器来替换。SDRAM 152为由数字部分120使用的程序代码和数据提供具有随机存取能力的存储。SDRAM存储器152还可用某些其他类型的易失性存储器(例如SRAM、DRAM等)及/或非易失性存储器(例如NOR闪速存储器)来替换。
对于图1中所示的实施例,NAND闪速存储器控制器140和NAND闪速存储器150经由总线160进行通信,且SDRAM控制器142和SDRAM 152经由总线162进行通信。尽管为了简明起见在图1中未示出,但其他装置也可耦连至总线160及/或总线162。总线162可指定为快速总线,并为高速运行而设计。可通过附装极少(且通常仅附装快速的)外部装置到总线162上并将总线162上的寄生电容最小化来实现这一点。总线160可指定为慢速总线并用于支持较慢的装置。例如,LCD、SRAM、输入装置等(图1中未示出)可经由总线160与数字部分120进行通信。因此,总线160上的寄生电容可比总线162上的寄生电容高得多。
为了在无线装置100通电时确保可靠地引导,可以最可能快的存储器存取速率从NAND闪速存储器150检索数据,保证具有最可能快的存储器存取速率会在最差情形条件下满足NAND闪速存储器的所有定时要求。该最差情形条件对应于在IC过程、温度、电压、总线负载等方面的最差的可能变化。用于最差情形条件的存储器存取速率称为最差情形存取速率。因为最差情形条件可十分严重,用于NAND闪速存储器的最差情形存取速率可能很慢。如果以最差情形存取速率检索许多数据页面,则引导时间可能很慢,这是非常不利的。
可使用自适应接口定时来实现NAND闪速存储器的快速而可靠的存取。在大部分时间不会碰到最差情形条件,且通常可以较高的速率而非最差情形存取速率来对NAND闪速存储器可靠地存取。通常为NAND闪速存储器使用纠错编码(ECC)以提供数据完整性,并确保对NAND闪速存储器的可靠存取。对于通电引导,可以初始存储器存取速率来对NAND闪速存储器进行存取,初始存储器存取速率可以是为实现可靠存储器存取而预测的速率。该初始存储器存取速率通常比最坏情形存取速率快(且可能是快得多)。然后,使用NAND闪速存储器的ECC能力来确定用于NAND闪速存储器的初始存储器存取速率是否合适,或是否应选择一较慢的存储器存取速率。
图2显示NAND闪速存储器150的一实例性结构。将NAND闪速存储器划分成B个大小相等的区块,且每一区块具有P个大小相等的页面。每一页面包括由D个字节组成的数据区和由S个字节组成的备用区。通常,B、P、D和S可以是任意值。作为一特定实例,NAND闪速存储器可具有B=4096个区块,每一区块包含P=32个页面,且每一页面包括D=512个数据字节和S=16个备用字节。然后,该NAND闪速存储器可具有512兆比特或64兆字节的存储容量。某些NAND闪速存储器操作(例如读取和写入)通常以页面为单位来执行,而其他NAND闪速存储器操作(例如擦除)通常以区块为单位来执行。各种NAND闪速存储器装置可通过商业途径获得。本文所述的存储器存取技术可用于任何大小和结构的NAND闪速存储器。
在读取和写入操作中,由于各种因素(例如不相符的接口定时),NAND闪速存储器及其他存储器装置易于出错。此外,NAND闪速存储器在其运行寿命期间易于出现位错误。为了验证存储于/读取自NAND闪速存储器的数据的完整性,可将检错编码或纠错编码用于NAND闪速存储器中每一数据页面。检错编码能够检测但不能纠正页面中的错误。纠错编码能够检测页面中的错误,并能够纠正页面中多达预定数量的位错误。每一页面均与一备用区相关联(如图2中所示),且备用区可用来存储该页面的检错/纠错信息。本文所述的存储器存取技术可与检错编码或纠错编码结合使用。为了清楚起见,下文结合纠错编码具体说明这些技术。
图3显示具有ECC能力的NAND闪速存储器控制器140的一实施例的方块图。NAND闪速存储器控制器140包括控制单元310、ECC单元320、页面缓冲器330,所有这些装置均可运行以向/自NAND闪速存储器150每次写入或读取一个数据页面。控制单元310中的寄存器312存储控制单元的相关参数(例如,当前设定值)。
对于读取操作,首先用要从NAND闪速存储器150读取的具体页面的地址来装载控制单元310,并然后向控制单元310提供命令以开始读取该页面。页面地址和命令可来自于主控制器130或主处理器124。然后,控制单元310向NAND闪速存储器提供读取(Read)命令和所选择的页面的地址。之后,控制单元310产生并提供恰当控制信号,以从NAND闪速存储器针对所选择的页面每次读取一个数据字节。自NAND闪速存储器读取的每一数据字节存储在页面缓冲器330中。ECC单元320还在每一数据字节读入时对其进行接收,并使用该数据字节来为所选择的页面产生ECC值。在已从NAND闪速存储器读取所选择页面中的所有数据字节后,读取存储在所选择页面的备用区中的ECC值。然后,ECC单元320将所存储的ECC值与为所选择页面所产生的ECC值进行比较。根据比较结果,ECC单元320能够确定在刚从NAND闪速存储器读取的页面中是否存在任何错误。ECC单元320还可使用所存储的ECC值来确定每一位错误的位置,并纠正每一位错误,直到达到最大数量的位错误为止。对于每一页面而言,可根据ECC值纠正的位错误的最大数量由所选用的ECC方案的纠错能力确定。ECC单元320可通知控制单元310检测到的、已纠正的、及/或不可纠正的错误。不可纠正的错误是超出用于NAND闪速存储器的ECC方案的纠错能力的错误。
对于写入操作,首先使用要写入数据页面的NAND闪速存储器中的具体页面的地址来装载控制单元310,并然后向控制单元310提供命令以开始写入该页面。然后,控制单元310向NAND闪速存储器提供写入命令及所选择页面的地址。之后,控制单元310产生并提供恰当的控制信号,以自页面缓冲器330向NAND闪速存储器每次写入一个数据字节。ECC单元320也接收写入至NAND闪速存储器的每一数据字节,并使用该数据字节为该页面产生ECC值。在已将该页面中的所有数据字节写入至NAND闪速存储器之后,将ECC单元320所产生的ECC值写入该页面的备用区。因此,NAND闪速存储器中的每一数据页面与在相继的读取中可用以检测并纠正页面中的位错误的ECC值相关联。
表1列出了在控制单元310与NAND闪速存储器150之间交换的控制信号。
表1
CS_n、RE_n和WE_n信号中的“_n”表明这些信号在处于逻辑低时有效。当NAND闪速存储器忙时-由就绪信号处于逻辑低来指示,控制单元310不向NAND闪速存储器提供任何控制信号。表1中列出的控制信号的详细说明可从市售NAND闪速存储器装置的数据表来得到。
图4显示用于从NAND闪速存储器读取数据页面的定时图。为了读取所选择的页面,首先通过使CS_n信号变为逻辑低来激活NAND闪速存储器。然后,通过使CLE信号变为逻辑高并将读取命令提供至NAND闪速存储器的I/O端口来将读命令发送至NAND闪速存储器。然后,通过使ALE信号变为逻辑高并向I/O端口提供页面地址来将页面地址发送至NAND闪速存储器。每次向页面地址提供一个字节,地址字节数由NAND闪速存储器的大小和结构来确定。
当就绪(Ready)信号变为逻辑高时-此表示NAND闪速存储器不忙,则所选择页面的实际读取可开始。通过向NAND闪速存储器提供恰当RE_n信号来从NAND闪速存储器读取所选择页面的每一数据字节。在已从NAND闪速存储器读取所选择页面的所有数据字节后,从NAND闪速存储器读取存储在所选择页面的备用区中的ECC值。在已读取整个ECC值之后,通过使CS_n信号变为逻辑高来禁用NAND闪速存储器。
图5显示用于向NAND闪速存储器写入数据页面的定时图。为了写入所选择页面,首先通过使CS_n信号变为逻辑低来激活NAND闪速存储器。NAND闪速存储器通过使就绪信号变为逻辑高来表明其不忙。然后向NAND闪速存储器发送写入(Write)命令,并且之后经由I/O端口来向NAND闪速存储器发送页面地址。
然后通过向NAND闪速存储器提供恰当的WE_n信号来向NAND闪速存储器写入所选择页面的每一数据字节。数据字节也由ECC单元320接收,并用于为该页面产生ECC值。在已将所选择页面的所有数据字节写入NAND闪速存储器后,将为页面产生的ECC值写入所选择页面的备用区。在已写入整个ECC值后,向NAND闪速存储器发送确认写入(Confirm Write)命令,并之后通过使CS_n信号变为逻辑高来禁用NAND闪速存储器。
再参照图3,控制单元310接收输入时钟(CLK)并基于该输入时钟产生RE_n、WE_n、及用于NAND闪速存储器的其他控制信号。控制单元310可为每一NAND闪速存储器存取使用任何数量的输入时钟周期。NAND闪速存储器存取是自/向NAND闪速存储器读取或写入一个数据字节。每一存储器存取的输入时钟周期的数量确定存储器存取速率,即,存储器存取速率与每一存储器存取的输入时钟周期的数量成反比关系。选择NAND闪速存储器存取速率来实现对NAND闪速存储器的可靠存取,且可根据存取性能动态调整NAND闪速存储器存取速率,如下文所述。控制单元310为自NAND闪速存储器读取数据产生恰当的RE_n信号,并为向NAND闪速存储器写入数据产生恰当的WE_n信号,两者均基于所选择的NAND闪速存储器存取速率。
图6A显示用于为NAND闪速存储器存取速率产生RE_n和WE_n信号的实施例的定时图,其中每一NAND闪速存储器存取具有两个输入时钟周期(或2TCLK)。对于从NAND闪速存储器读取一个数据字节的每一存储器存取,RE_n信号均具有逻辑高设置部分(标记为R设置),随后是逻辑低有效部分(标记为R有效)。对于图6A中的实施例,读取设置部分的宽度为一个时钟周期,且读取有效部分的宽度也是一个时钟周期。对于向NAND闪速存储器写入一个数据字节的每一存储器存取,WE_n信号具有逻辑高设置部分(标记为W设置),随后是逻辑低有效部分(标记为W有效),且再随后是逻辑高保持部分(标记为W保持)。对于图6A中的实施例,写入设置部分的宽度是半个时钟周期,且写入保持部分的宽度也是半个时钟周期。
图6B显示用于为得到NAND闪速存储器存取速率而产生RE_n和WE_n信号的一实施例的定时图,其中每一NAND闪速存储器存取具有四个输入时钟周期(或4TCLK)。对于RE_n信号而言,读取设置部分的宽度为一个时钟周期,且读取有效部分的宽度是三个时钟周期。对于WE_n信号而言,写入设置部分的宽度为一个时钟周期,写入有效部分的宽度是两个时钟周期,且写入保持部分的宽度也是一个时钟周期。
表2显示用于针对不同NAND闪速存储器存取设定值(或简称为“设定值”)产生具有不同输入时钟周期数量的RE_n和WE_n信号的一实施例。设定值还可称为等待状态、模式、配置、或一些其他术语。每一设定值与不同的NAND闪速存储器存取速率相关联,NAND闪速存储器存取速率在表2的第2列中以输入时钟周期的整数给出。对于每一设定值,RE_n信号的设置部分R设置和有效部分R有效分别在表2的第三和第四列中给出。WE_n信号的设置部分W设置、有效部分W有效、和保持部分W保持分别在表2的第五、第六和第七列中给出。
表2
表2显示具有8个设定值的一具体实施例,以及分别针对读取和写入操作的RE_n和WE_n信号的一些具体实施例。通常,可支持任何数量的设定值,每一设定值可与任何(整数或非整数)数量的输入时钟周期相关联,且可定义RE_n和WE_n信号的各部分以具有任何适宜持续时间。设定值的数量及每一设定值的定义可取决于各种因素,例如(举例而言)NAND闪速存储器装置的定时要求、输入时钟的频率、在NAND闪速存储器控制器与NAND闪速存储器之间的总线上载入的电容等。NAND闪速存储器通常要求RE_n信号在更长时间中处于逻辑低,且R有效通常略长于R设置。然而,当总线上的电容负载过大时或在焊垫/线路驱动器可能遭到削弱时,R有效和R设置二者的持续时间可增加。
图7显示用于使用自适应接口定时从NAND闪速存储器读取数据的过程700的流程图。每当无线装置通电时,可使用过程700自NAND闪速存储器向SDRAM传送程序代码来作为引导的一部分。首先,用初始设定值来配置NAND闪速存储器控制器140,该初始设定值可以是为提供对NAND闪速存储器(方块712)的可靠存取而预测的NAND闪速存储器存取速率。该初始设定值可根据无线装置的设计来确定,且可经进一步选择以在大多数运行条件下实现对NAND闪速存储器的成功读取。初始设定值还可是最近用来成功从NAND闪速存储器进行读取的设定值。初始设定值还可是用于无线装置所支持的最快存储器存取速率的设定值(例如,表2中的设定值0)。在任何情形下,控制单元310根据初始设定值为NAND闪速存储器产生RE_n、WE_n、及其他控制信号。
页面索引i设定成要从NAND闪速存储器读取的第一页面(方块714)。然后,使用根据当前设定值(对于第一页面来说是初始设定值)产生的控制信号来从NAND闪速存储器读取页面i(方块722)。在一实施例中,在已从NAND闪速存储器读取整个页面i后,确定页面i是否遇到任何不可纠正的错误(方块724)。如果在方块726中确定页面i存在不可纠正的错误,则使用比当前使用的设定值更慢的存储器存取速率的另一设定值来重新配置NAND闪速存储器140。在另一实施例中,在已读取整个页面i后,确定页面i是否遇到任何已纠正的或不可纠正的错误(方块724)。如果页面i存在任何类型的错误,则使用用于更慢的存储器存取速率的另一设定值来重新配置NAND闪速存储器控制器140(方块728)。
在方块728中可以各种方式来选择另一设定值。在一个实施例中,选择下一更慢存储器存取速率的设定值。例如,如果使用表2中的设定值1时遇到了错误,则选择设定值2。在另一实施例中,选择比当前设定值约慢二分之一的存储器存取速率的设定值。例如,如果使用设定值1(其每一存储器存取使用三个输入时钟周期)遇到错误,则选择每一存储器存取具有六个输入时钟周期的设定值4。在又一实施例中,如果遇到错误,则选择用于最差情形存取速率的设定值。例如,如果设定值5用于最差情形存取速率,则若页面i遇到错误,不管在页面i中用于读取的设定值是什么,均可选择设定值5。在又一实施例中,如果遇到错误,则选择用于最慢存储器存取速率的设定值。在任何情形下,在方块728之后,过程返回至方块722,以从NAND闪速存储器读取相同页面i,虽然使用根据新选择的设定值产生的控制信号。
如果在方块726中确定刚才读取的页面没有遇到错误,则确定是否已从NAND闪速存储器读取了所有页面(方块730)。如果答案为“否”,则使页面索引递增为i=i+1(方块732)。该过程然后返回方块722以从NAND闪速存储器读取下一页面。否则,如果已从NAND闪速存储器读取所有页面,则该过程终止。可保存使得成功读取NAND闪速存储器的当前设定值(例如保存在图3所示控制单元310的寄存器312中),并随后用作下一NAND闪速存储器存取的初始设定值。
如果为通电引导执行过程700,则可从NAND闪速存储器读取程序代码并装载至SDRAM中。在传送结束之后,可由数字部分120中的处理器及/或控制器执行SDRAM中的程序代码。
图8显示用于使用自适应接口定时向NAND闪速存储器写入数据的过程800的流程图。过程800可用来将程序代码或大量数据写入NAND闪速存储器中。首先,用初始设定值配置NAND闪速存储器控制器140,初始设定值可能是为提供对NAND闪速存储器的可靠存取而预测的NAND闪速存储器存取速率(方块812)。可如上文针对图7所述来确定该初始设定值。根据初始设定值,控制单元310为NAND闪速存储器产生RE_n、WE_n、和其他控制信号。
为要写入NAND闪速存储器的第一页面设定页面索引i(方块814)。然后,使用根据当前设定值(对于第一页面而言是初始设定值)产生的控制信号来向NAND闪速存储器写入页面i(方块820)。为页面i计算ECC值,并将EEC值写入页面i的备用区(也在方块820中)。在已将整个页面i写入NAND闪速存储器后,使用根据当前设定值产生的控制信号来将该同一页面i从NAND闪速存储器读回(方块822)。然后确定页面i是否遇到任何错误(方块824)。这可通过以下方式来实现:(1)为从NAND闪速存储器读取的页面计算ECC值,及(2)将为从NAND闪速存储器读取的页面计算的ECC值与为写入NAND闪速存储器的页面计算的ECC值进行比较。如果在方块826中确定页面i有错,则使用比当前使用的设定值更慢的存储器存取速率的另一设定值来重新配置NAND闪速存储器控制器140(方块828)。可如上文针对图7所述来选择这种新设定值。然后,过程返回方块820以向NAND闪速存储器写入同一页面i,虽然是使用根据新选择的设定值所产生的控制信号。
如果在方块826中确定刚才读取的页面没有遇到任何错误,则确定是否所有页面均已写入NAND闪速存储器中(方块830)。如果答案是“否”,则使页面索引递增为i=i+1(方块832),且过程返回至方块820来以同一方式向NAND闪速存储器写入下一页面。否则,如果已写入所有页面,则过程终止。可保存使得成功写入NAND闪速存储器的当前设定值(例如,保存在图3所示控制单元310中的寄存器312中),并随后用作下一NAND闪速存储器存取的初始设定值。
图8中所示实施例向NAND闪速存储器每次写入一个页面,并还读回并验证写入至NAND闪速存储器的每一页面。在另一实施例中,可将使得向NAND闪速存储器成功写入第一页面的设定值视为提供对NAND闪速存储器的可靠存取。然后,可使用破视为可靠的设定值来向NAND闪速存储器写入每一剩余页面。或者,可使用比用来成功写入第一页面的设定值具有更慢的存储器存取速率并且具有更多定时裕度的另一设定值来向NAND闪速存储器写入每一剩余页面。
图7和图8显示用于使用自适应接口定时从NAND闪速存储器读取数据和向其写入数据的实例性过程。还可以其他方式来执行使用自适应接口定时对NAND闪速存储器进行的读取和写入,且这是在本发明的范畴之内。
如本文所述,可结合各种类型的纠错编码和检错编码来执行使用自适应接口定时的存储器存取。一些实例性纠错码包括区块码,例如汉明(Hamming)码、里德所罗门(Reed-Solomon)码、BCH(Bose,Chaudhuri及Hocquenghem)码等。系统化区块码可提供使用之便,因为每一经区块编码的页面包括原始未经修改的数据(通常称为系统化部分)、随后是同位校验数据(通常称为同位校验部分)。同位校验数据是自数据部分产生的ECC值。因此,每一系统化经区块编码的页面包括P个数据字节及随后的S个同位校验字节。在同位校验数据之后,可向/自NAND闪速存储器写入或读取页面的数据,且无需为系统化或同位校验部分进行临时存储。所属技术领域中可获得的无数参考资料对区块编码进行了说明。这些参考资料之一是Prentice Hall出版公司1983年出版的S.Lin和D.Costello编写的书名为“Error Control Coding:Fundamentalsand Applications”的书籍。
在一实施例中,汉明码用作NAND闪速存储器的纠错编码,该NAND闪速存储器具有512个字节的页面大小,且每个页面具有16个字节的备用区。将每一页面的512个数据字节划分成四个独立的组,每一组包括128个数据字节。汉明码在每一组中编码128个数据字节,并为该组产生20个代码位。每一页面的总编码开销是80个代码位,该80个代码位可保存在该页面的16个备用字节中。该汉明码具有以下纠错/检错能力:(1)可纠正每一组中的一个位错误,(2)可检测每一组中的两个或更多个位错误,及(3)可纠正每一页面中分布在四个组中的最多四个位错误。以上表示一具体的纠错编码设计。还可实施其他设计并且这些设计处于本发明的范畴之内。
还可使用不具有纠错能力的检错码来检测NAND闪速存储器数据中的错误。常用的检错码是循环冗余检查(CRC)码。
使用自适应接口定时的存储器存取允许快速而可靠地进行引导。可在无需使用较高速度等级的NAND闪速存储器装置的情况下来实现良好的性能。此外,不对NAND闪速存储器与NAND闪速存储器控制器之间的总线施加限制。可针对不同的无线装置或同一无线装置的不同配置将不同的外部装置耦连至该总线。每当将装置通电时,引导过程可动态且自动地适应无线装置的不同配置以提供可靠的引导。
本文所述的存储器存取技术可用于各种应用。这些应用包括对可执行程序代码的初始加电引导(从NAND闪速存储器至SDRAM)、应用程序代码(例如音频、视频及其他终端应用程序的代码)的下载和回放、可执行代码(从NAND闪速存储器至SDRAM)的运行时装载等。
为了清楚起见,上述说明用于一特定存储器架构,在该架构中,NAND闪速存储器和SDRAM均在数字部分120的外部。通常,本文所述的存储器存取技术可用于各种类型的存储器,只要用可对在数据向/自存储器的传送期间所出现的错误进行标记的检错码/纠错码来保护存储在存储器中的数据即可。可用ASIC来实施数字部分120,且NAND闪速存储器和SDRAM可实施在ASIC外部的相同或不同的集成电路上。本文所述的技术也可用于其中将NAND闪速存储器、SDRAM或两者实施在数字部分120中的设计。
同样为了清楚起见,已针对NAND闪速存储器和SDRAM具体说明了各个方面和实施例。其他类型的存储器也可用于NAND闪速存储器和SDRAM。可将存储器存取技术用于除NAND闪速存储器之外的其他类型的存储器装置。这些技术还可用于NAND闪速存储器与其他类型的存储器(例如异步SRAM、异步页面读取SRAM、伪SRAM、DRAM、伪RAM(非页式及页面式)、突发RAM等)之间的数据传送。
本文所述的存储器存取技术可用于无线通信装置、消费电子装置(例如数码相机、数字音频播放器、存储卡读卡器/写入器等)、计算机系统、其他便携装置、及各种其他电子装置和系统。这些技术可有利地用于任何装置,在此种装置中,NAND闪速存储器用作大容量存储单元(例如以类似于硬盘的方式),以使可向/自NAND闪速存储器写入及/或读取大量数据。这些技术还可用于各种形式的NAND闪速存储器,例如小型闪速存储卡、安全数据(SD)存储卡等。
可通过各种手段实施本文所述的存储器存取技术。用于支持存储器存取的单元(例如NAND闪速存储器控制器140)可构建在ASIC、DSP、数字信号处理装置(DSPD)、可编程逻辑装置(PLD)、现场可编程门阵列(FPGA)、处理器、控制器、微控制器、微处理器、设计成执行本文所述功能的其他电子单元、或其组合中。
提供上述有关所揭示实施例的说明旨在使所属技术领域中的任一技术人员都能够制作或使用本发明。所属技术领域中的技术人员将易于得知这些实施例的各种修改方式,且本文所定义的一般原理也可适用于其它实施例,此并不背离本发明的主旨或范畴。因此,本文并非意欲将本发明限定于本文所示实施例,而欲赋予其与本文所揭示原理及新颖特征相一致的最宽广范畴。
Claims (32)
1、一种从存储器装置读取数据的方法,所述存储器装置包含一个或多个用于存储数据的页面,所述方法包括:
选择用于对所述存储器装置进行存取的第一存储器存取速率;
以所述第一存储器存取速率从所述存储器装置读取第一数据页面;
确定从所述存储器装置读取的所述第一数据页面是否包含错误;及
如果从所述存储器装置读取的所述第一数据页面包含错误,则选择用于对所述存储器装置进行存取的第二存储器存取速率,所述第二存储器存取速率比所述第一存储器存取速率慢。
2、一种从NAND闪速存储器读取数据的方法,其包括:
选择用于对所述NAND闪速存储器进行存取的第一存储器存取速率;
以所述第一存储器存取速率从所述NAND闪速存储器读取第一数据页面;
确定从所述NAND闪速存储器读取的所述第一数据页面是否包含错误;及
如果从所述NAND闪速存储器读取的所述第一数据页面包含错误,则选择用于对所述NAND闪速存储器进行存取的第二存储器存取速率,所述第二存储器存取速率比所述第一存储器存取速率慢。
3、如权利要求2所述的方法,其进一步包括:
如果从所述NAND闪速存储器读取的所述第一数据页面包含错误,则以所述第二存储器存取速率从所述NAND闪速存储器再一次读取所述第一数据页面。
4、如权利要求2所述的方法,其进一步包括:
如果从所述NAND闪速存储器读取的所述第一数据页面不包含错误,则以所述第一存储器存取速率从所述NAND闪速存储器读取至少一个其他数据页面的每一者。
5、如权利要求2所述的方法,其进一步包括:
根据当前所选择的存储器存取速率产生用于从所述NAND闪速存储器读取数据的控制信号。
6、如权利要求2所述的方法,其中对于每一NAND闪速存储器存取,所述第一和第二存储器存取速率分别与第一和第二数量的时钟周期相关联。
7、如权利要求2所述的方法,其中所述确定从所述NAND闪速存储器读取的所述第一数据页面是否包含错误包括
根据对存储在所述NAND闪速存储器中的数据使用的纠错编码来确定从所述NAND闪速存储器读取的所述第一数据页面是否包含错误。
8、如权利要求2所述的方法,其中所述确定从所述NAND闪速存储器读取的所述第一数据页面是否包含错误包括:
为从所述NAND闪速存储器读取的所述第一数据页面计算纠错编码值,
将经计算的纠错编码值与从所述NAND闪速存储器读取的所述第一数据页面的纠错编码值进行比较,及
根据所述经计算的纠错编码值和所述读取的所述第一数据页面的纠错编码值来确定所述第一数据页面是否包含错误。
9、如权利要求2所述的方法,其中所述确定从所述NAND闪速存储器读取的所述第一数据页面是否包含错误包括:
根据对存储在所述NAND闪速存储器中的数据使用的检错编码来确定从所述NAND闪速存储器读取的所述第一数据页面是否包含错误。
10、如权利要求2所述的方法,其中所述第一存储器存取速率是多个所支持的存储器存取速率之中最快的存储器存取速率。
11、如权利要求2所述的方法,其中所述第一存储器存取速率是之前用于从所述NAND闪速存储器成功读取数据的存储器存取速率。
12、如权利要求2所述的方法,其中所述第一存储器存取速率是经预测以针对大多数运行条件提供对所述NAND闪速存储器的可靠存取的存储器存取速率。
13、如权利要求2所述的方法,其中所述第二存储器存取速率是在多个所支持的存储器存取速率之中比所述第一存储器存取速率慢的下一存储器存取速率。
14、如权利要求2所述的方法,其中所述第二存储器存取速率比所述第一存储器存取速率慢一预定的百分比。
15、如权利要求2所述的方法,其中所述第二存储器存取速率是经预测以针对最差情形运行条件提供对所述NAND闪速存储器的可靠存取的存储器存取速率。
16、如权利要求2所述的方法,其中从所述NAND闪速存储器读取的所述数据是用于程序代码。
17、一种存储器控制器,其包括:
控制单元,其可运行以获得用于对NAND闪速存储器进行存取的第一存储器存取速率,并指令以所述第一存储器存取速率从所述NAND闪速存储器读取第一数据页面;及
检测单元,其可运行以确定从所述NAND闪速存储器读取的所述第一数据页面是否包含错误,及
其中如果从所述NAND闪速存储器读取的所述第一数据页面包含错误,则所述控制单元可运行以获得用于对所述NAND闪速存储器进行存取的第二存储器存取速率,所述第二存储器存取速率比所述第一存储器存取速率慢。
18、如权利要求17所述的存储器控制器,其中所述控制单元可进一步运行来产生控制信号,以根据当前所选择的存储器存取速率从所述NAND闪速存储器读取数据。
19、如权利要求17所述的存储器控制器,其中对于每一NAND闪速存储器存取,所述第一和第二存储器存取速率分别与第一和第二数量的时钟周期相关联。
20、一种用于从NAND闪速存储器读取数据的设备,其包括:
用于选择用于对所述NAND闪速存储器进行存取的第一存储器存取速率的装置;
读取装置,其用于以所述第一存储器存取速率从所述NAND闪速存储器读取第一数据页面;
确定装置,其用于确定从所述NAND闪速存储器读取的所述第一数据页面是否包含错误;及
用于在从所述NAND闪速存储器读取的所述第一数据页面包含错误时选择用于对所述NAND闪速存储器进行存取的第二存储器存取速率的装置,所述第二存储器存取速率比所述第一存储器存取速率慢。
21、如权利要求20所述的设备,其进一步包括:
产生装置,其用于产生控制信号,以根据当前所选择的存储器存取速率从所述NAND闪速存储器读取数据。
22、一种集成电路,其包括:
控制单元,其可运行以获得用于对所述集成电路外部的NAND闪速存储器进行存取的第一存储器存取速率,并指令以所述第一存储器存取速率从所述NAND闪速存储器读取第一数据页面;及
检测单元,其可运行以确定从所述NAND闪速存储器读取的所述第一数据页面是否包含错误,及
其中如果从所述NAND闪速存储器读取的所述第一数据页面包含错误,则所述控制单元可运行以获得用于对所述NAND闪速存储器进行存取的第二存储器存取速率,所述第二存储器存取速率比所述第一存储器存取速率慢。
23、一种无线装置,其包括:
控制单元,其可运行以获得用于对NAND闪速存储器进行存取的第一存储器存取速率,并指令以所述第一存储器存取速率从所述NAND闪速存储器读取第一数据页面;及
检测单元,其可运行以确定从所述NAND闪速存储器读取的所述第一数据页面是否包含错误,及
其中如果从所述NAND闪速存储器读取的所述第一数据页面包含错误,则所述控制单元可运行以获得用于对所述NAND闪速存储器进行存取的第二存储器存取速率,所述第二存储器存取速率比所述第一存储器存取速率慢。
24、如权利要求23所述的无线装置,其中从所述NAND闪速存储器读取的所述数据是用于所述无线装置的程序代码。
25、如权利要求24所述的无线装置,其中所述控制单元可运行以每当所述无线装置通电时,从所述NAND闪速存储器读取所述程序代码。
26、一种向NAND闪速存储器写入数据的方法,其包括:
选择用于对所述NAND闪速存储器进行存取的第一存储器存取速率;
以所述第一存储器存取速率向所述NAND闪速存储器写入第一数据页面;
确定所述第一数据页面是否正确地写入所述NAND闪速存储器;及
如果所述第一数据页面没有正确写入所述NAND闪速存储器,则选择用于对所述NAND闪速存储器进行存取的第二存储器存取速率,所述第二存储器存取速率比所述第一存储器存取速率慢。
27、如权利要求26所述的方法,其中所述确定所述第一数据页面是否正确写入所述NAND闪速存储器包括:
以所述第一存储器存取速率从所述NAND闪速存储器读回所述第一数据页面,
确定从所述NAND闪速存储器读取的所述第一数据页面是否包含错误,及
如果从所述NAND闪速存储器读回的所述第一数据页面不包含错误,则声明所述第一数据页面正确写入所述NAND闪速存储器。
28、如权利要求26所述的方法,其中对于每一NAND闪速存储器存取,所述第一和第二存储器存取速率分别与第一和第二数量的时钟周期相关联。
29、一种存储器控制器,其包括:
控制单元,其可运行以获得用于对NAND闪速存储器进行存取的第一存储器存取速率,并指令以所述第一存储器存取速率向所述NAND闪速存储器写入第一数据页面;
检测单元,其可运行以确定所述第一数据页面是否正确写入所述NAND闪速存储器,及
其中如果所述第一数据页面没有正确写入所述NAND闪速存储器,则所述控制单元可进一步运行以获得用于对所述NAND闪速存储器进行存取的第二存储器存取速率,所述第二存储器存取速率比所述第一存储器存取速率慢。
30、如权利要求29所述的存储器控制器,其中所述检测单元可运行以:
以所述第一存储器存取速率接收从所述NAND闪速存储器读回的所述第一数据页面,
确定从所述NAND闪速存储器读回的所述第一数据页面是否包含错误,及
如果从所述NAND闪速存储器读回的所述第一数据页面不包含错误,则声明所述第一数据页面正确写入所述NAND闪速存储器。
31、一种用于向NAND闪速存储器写入数据的设备,其包括:
用于选择用于对所述NAND闪速存储器进行存取的第一存储器存取速率的装置;
写入装置,其用于以所述第一存储器存取速率向所述NAND闪速存储器写入第一数据页面;
用于确定所述第一数据页面是否正确写入所述NAND闪速存储器的装置;及
用于在所述第一数据页面没有正确写入所述NAND闪速存储器时,选择用于对所述NAND闪速存储器进行存取的第二存储器存取速率的装置,所述第二存储器存取速率比所述第一存储器存取速率慢。
32、如权利要求31所述的设备,其中所述用于确定所述第一数据页面是否正确写入所述NAND闪速存储器的装置包括:
读取装置,其用于以所述第一存储器存取速率从所述NAND闪速存储器读回所述第一数据页面,
确定装置,其用于确定从所述NAND闪速存储器读回的所述第一数据页面是否包含错误,及
声明装置,其用于在从所述NAND闪速存储器读回的所述第一数据页面不包含错误时声明所述第一数据页面正确写入所述NAND闪速存储器。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/993,034 US7061804B2 (en) | 2004-11-18 | 2004-11-18 | Robust and high-speed memory access with adaptive interface timing |
US10/993,034 | 2004-11-18 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101099216A CN101099216A (zh) | 2008-01-02 |
CN100578660C true CN100578660C (zh) | 2010-01-06 |
Family
ID=36386084
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200580046330.3A Active CN100578660C (zh) | 2004-11-18 | 2005-11-16 | 使用自适应接口定时的稳健而高速的存储器存取 |
Country Status (5)
Country | Link |
---|---|
US (1) | US7061804B2 (zh) |
CN (1) | CN100578660C (zh) |
MX (1) | MX2007006033A (zh) |
TW (1) | TW200632933A (zh) |
WO (1) | WO2006055717A2 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103455454A (zh) * | 2013-09-02 | 2013-12-18 | 华为技术有限公司 | 一种控制存储器启动的方法和装置 |
Families Citing this family (51)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FI20035072A0 (fi) * | 2003-05-22 | 2003-05-22 | Nokia Corp | Liitäntäväylä, elektroniikkalaite ja järjestelmä |
EP1909289A1 (en) * | 2005-06-28 | 2008-04-09 | Spansion LLC | Semiconductor device and control method thereof |
JP4991131B2 (ja) * | 2005-08-12 | 2012-08-01 | 株式会社東芝 | 半導体記憶装置 |
CN100349108C (zh) * | 2005-11-21 | 2007-11-14 | 北京中星微电子有限公司 | 与非门快闪存储器的物理接口、接口方法和管理设备 |
KR100678124B1 (ko) * | 2006-01-26 | 2007-02-02 | 삼성전자주식회사 | 화상 통신 단말 및 화상 통신 단말의 화상 통신 데이터처리 방법 |
US7471562B2 (en) * | 2006-05-08 | 2008-12-30 | Macronix International Co., Ltd. | Method and apparatus for accessing nonvolatile memory with read error by changing read reference |
US7773421B2 (en) * | 2006-05-08 | 2010-08-10 | Macronix International Co., Ltd. | Method and apparatus for accessing memory with read error by changing comparison |
US8077516B2 (en) * | 2006-05-08 | 2011-12-13 | Macronix International Co., Ltd. | Method and apparatus for accessing memory with read error by changing comparison |
JP2008090433A (ja) * | 2006-09-29 | 2008-04-17 | Toshiba Corp | メモリコントローラ、メモリシステム及びデータ転送方法 |
KR100784865B1 (ko) | 2006-12-12 | 2007-12-14 | 삼성전자주식회사 | 낸드 플래시 메모리 장치 및 그것을 포함한 메모리 시스템 |
US8051358B2 (en) | 2007-07-06 | 2011-11-01 | Micron Technology, Inc. | Error recovery storage along a nand-flash string |
US8065583B2 (en) | 2007-07-06 | 2011-11-22 | Micron Technology, Inc. | Data storage with an outer block code and a stream-based inner code |
KR101394693B1 (ko) | 2007-08-08 | 2014-05-15 | 엘지전자 주식회사 | Pld 및 nand 플래시 메모리를 이용한 전자기기의 부팅 방법 |
US8499229B2 (en) * | 2007-11-21 | 2013-07-30 | Micro Technology, Inc. | Method and apparatus for reading data from flash memory |
US8046542B2 (en) | 2007-11-21 | 2011-10-25 | Micron Technology, Inc. | Fault-tolerant non-volatile integrated circuit memory |
US8327245B2 (en) | 2007-11-21 | 2012-12-04 | Micron Technology, Inc. | Memory controller supporting rate-compatible punctured codes |
US9152496B2 (en) * | 2007-12-21 | 2015-10-06 | Cypress Semiconductor Corporation | High performance flash channel interface |
US8484407B2 (en) | 2007-12-21 | 2013-07-09 | Rambus Inc. | Flash memory timing pre-characterization |
KR100897298B1 (ko) | 2007-12-27 | 2009-05-14 | (주)인디링스 | 읽기 신호 타이밍을 조정하는 플래시 메모리 장치 및플래시 메모리 장치의 읽기 제어 방법 |
CN101645026B (zh) * | 2008-08-07 | 2011-11-16 | 创惟科技股份有限公司 | 根据错误更正码更新闪存页面的储存装置与方法 |
US8175012B2 (en) * | 2009-03-26 | 2012-05-08 | Mediatek Inc. | Decoding/encoding method for booting from a NAND flash and system thereof |
US8413015B2 (en) * | 2009-09-21 | 2013-04-02 | Sandisk Technologies Inc. | Nonvolatile memory controller with scalable pipelined error correction |
CN102034552A (zh) * | 2009-09-25 | 2011-04-27 | 威刚科技(苏州)有限公司 | 存储装置与其资料处理方法 |
US8843692B2 (en) | 2010-04-27 | 2014-09-23 | Conversant Intellectual Property Management Inc. | System of interconnected nonvolatile memories having automatic status packet |
US8386895B2 (en) | 2010-05-19 | 2013-02-26 | Micron Technology, Inc. | Enhanced multilevel memory |
US8555050B2 (en) * | 2010-07-15 | 2013-10-08 | Broadcom Corporation | Apparatus and method thereof for reliable booting from NAND flash memory |
US8464137B2 (en) | 2010-12-03 | 2013-06-11 | International Business Machines Corporation | Probabilistic multi-tier error correction in not-and (NAND) flash memory |
US8595597B2 (en) | 2011-03-03 | 2013-11-26 | Intel Corporation | Adjustable programming speed for NAND memory devices |
US8996957B1 (en) | 2012-05-22 | 2015-03-31 | Pmc-Sierra, Inc. | Systems and methods for initializing regions of a flash drive having diverse error correction coding (ECC) schemes |
US9021337B1 (en) | 2012-05-22 | 2015-04-28 | Pmc-Sierra, Inc. | Systems and methods for adaptively selecting among different error correction coding schemes in a flash drive |
US8788910B1 (en) | 2012-05-22 | 2014-07-22 | Pmc-Sierra, Inc. | Systems and methods for low latency, high reliability error correction in a flash drive |
US9047214B1 (en) | 2012-05-22 | 2015-06-02 | Pmc-Sierra, Inc. | System and method for tolerating a failed page in a flash device |
US9183085B1 (en) | 2012-05-22 | 2015-11-10 | Pmc-Sierra, Inc. | Systems and methods for adaptively selecting from among a plurality of error correction coding schemes in a flash drive for robustness and low latency |
US9176812B1 (en) | 2012-05-22 | 2015-11-03 | Pmc-Sierra, Inc. | Systems and methods for storing data in page stripes of a flash drive |
US8972824B1 (en) | 2012-05-22 | 2015-03-03 | Pmc-Sierra, Inc. | Systems and methods for transparently varying error correction code strength in a flash drive |
US9021336B1 (en) | 2012-05-22 | 2015-04-28 | Pmc-Sierra, Inc. | Systems and methods for redundantly storing error correction codes in a flash drive with secondary parity information spread out across each page of a group of pages |
US8793556B1 (en) | 2012-05-22 | 2014-07-29 | Pmc-Sierra, Inc. | Systems and methods for reclaiming flash blocks of a flash drive |
US9021333B1 (en) | 2012-05-22 | 2015-04-28 | Pmc-Sierra, Inc. | Systems and methods for recovering data from failed portions of a flash drive |
US9577673B2 (en) | 2012-11-08 | 2017-02-21 | Micron Technology, Inc. | Error correction methods and apparatuses using first and second decoders |
US9053012B1 (en) | 2013-03-15 | 2015-06-09 | Pmc-Sierra, Inc. | Systems and methods for storing data for solid-state memory |
US9009565B1 (en) | 2013-03-15 | 2015-04-14 | Pmc-Sierra, Inc. | Systems and methods for mapping for solid-state memory |
US9208018B1 (en) | 2013-03-15 | 2015-12-08 | Pmc-Sierra, Inc. | Systems and methods for reclaiming memory for solid-state memory |
US9081701B1 (en) | 2013-03-15 | 2015-07-14 | Pmc-Sierra, Inc. | Systems and methods for decoding data for solid-state memory |
US9026867B1 (en) | 2013-03-15 | 2015-05-05 | Pmc-Sierra, Inc. | Systems and methods for adapting to changing characteristics of multi-level cells in solid-state memory |
KR102239356B1 (ko) | 2015-02-17 | 2021-04-13 | 삼성전자주식회사 | 클록 제어 유닛 또는 전원 제어 유닛을 포함하는 저장 장치와 메모리 시스템, 그리고 그것의 동작 방법 |
US9772777B2 (en) | 2015-04-27 | 2017-09-26 | Southwest Research Institute | Systems and methods for improved access to flash memory devices |
JP6860830B2 (ja) * | 2016-06-28 | 2021-04-21 | 日本精機株式会社 | 車両用表示装置 |
US9672905B1 (en) * | 2016-07-22 | 2017-06-06 | Pure Storage, Inc. | Optimize data protection layouts based on distributed flash wear leveling |
CN109903800A (zh) * | 2019-03-15 | 2019-06-18 | 中国科学院上海微系统与信息技术研究所 | 相变储存器控制装置、相变储存器控制方法、电子装置及存储介质 |
CN110955387B (zh) * | 2019-10-25 | 2023-10-24 | 合肥沛睿微电子股份有限公司 | 自适应识别闪存类型方法及计算机可读取存储介质及装置 |
KR102685828B1 (ko) * | 2022-08-29 | 2024-07-17 | 주식회사 피델릭스 | 입력 클락 신호의 주파수에 따라 동작 상태가 변경되는 반도체 메모리 장치 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5210870A (en) * | 1990-03-27 | 1993-05-11 | International Business Machines | Database sort and merge apparatus with multiple memory arrays having alternating access |
US5784332A (en) * | 1996-12-12 | 1998-07-21 | Micron Technology Corporation | Clock frequency detector for a synchronous memory device |
JP3999900B2 (ja) * | 1998-09-10 | 2007-10-31 | 株式会社東芝 | 不揮発性半導体メモリ |
JP2002063069A (ja) * | 2000-08-21 | 2002-02-28 | Hitachi Ltd | メモリ制御装置、データ処理システム及び半導体装置 |
-
2004
- 2004-11-18 US US10/993,034 patent/US7061804B2/en active Active
-
2005
- 2005-11-16 WO PCT/US2005/041692 patent/WO2006055717A2/en active Application Filing
- 2005-11-16 CN CN200580046330.3A patent/CN100578660C/zh active Active
- 2005-11-16 MX MX2007006033A patent/MX2007006033A/es active IP Right Grant
- 2005-11-18 TW TW094140729A patent/TW200632933A/zh unknown
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103455454A (zh) * | 2013-09-02 | 2013-12-18 | 华为技术有限公司 | 一种控制存储器启动的方法和装置 |
US9424186B2 (en) | 2013-09-02 | 2016-08-23 | Huawei Technologies Co., Ltd. | Method and apparatus for controlling memory startup |
Also Published As
Publication number | Publication date |
---|---|
MX2007006033A (es) | 2007-07-20 |
US7061804B2 (en) | 2006-06-13 |
WO2006055717A3 (en) | 2006-09-14 |
WO2006055717A2 (en) | 2006-05-26 |
CN101099216A (zh) | 2008-01-02 |
US20060104115A1 (en) | 2006-05-18 |
TW200632933A (en) | 2006-09-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100578660C (zh) | 使用自适应接口定时的稳健而高速的存储器存取 | |
US8615702B2 (en) | Method and apparatus for correcting errors in memory device | |
CN101373449B (zh) | Ecc控制电路、多通道存储器系统以及相关操作方法 | |
US8631310B2 (en) | Method for reducing uncorrectable errors of a memory device regarding error correction code, and associated memory device and controller thereof | |
US7187583B2 (en) | Method for reducing data error when flash memory storage device using copy back command | |
US8392797B2 (en) | Error correcting controller, flash memory chip system, and error correcting method thereof | |
KR101543245B1 (ko) | 에러 교정 장치와 이를 포함하는 메모리 장치와 데이터 처리 시스템 | |
US20070300130A1 (en) | Method of Error Correction Coding for Multiple-Sector Pages in Flash Memory Devices | |
CN101236524A (zh) | 混合硬盘驱动器、计算机系统、闪存直接存储器存取电路 | |
US20190310923A1 (en) | Data storage device and operating method thereof | |
US9384125B2 (en) | Method for accessing flash memory having pages used for data backup and associated memory device | |
US10992322B2 (en) | Data storage system and associated method for saving storage space and eliminating data errors | |
US20170187397A1 (en) | Data storage device and operating method thereof | |
WO2007008324A2 (en) | High-speed interface for high-density flash with two levels of pipelined cache | |
US8301981B2 (en) | Data access method for flash memory and storage system and controller thereof | |
CN109753457B (zh) | 数据处理系统及其操作方法 | |
KR20190029316A (ko) | 마이크로 컨트롤러, 이를 포함하는 메모리 시스템 및 이의 동작방법 | |
CN102890645A (zh) | 存储器储存装置、存储器控制器与数据写入方法 | |
US10289328B2 (en) | Memory controller and method for handling host request based on data character | |
US7685333B2 (en) | Method and system for communicating with memory devices utilizing selected timing parameters from a timing table | |
CN101872318B (zh) | 用于快闪记忆体的资料存取方法及其储存系统与控制器 | |
EP3499376A1 (en) | Memory system varying operation of memory controller according to internal status of memory device | |
US9009389B2 (en) | Memory management table processing method, memory controller, and memory storage apparatus | |
US11662940B2 (en) | Data storage device and data processing method for restoring MLC/TLC memory to avoid degradation of access performance of a memory device caused by word line short | |
KR20180060510A (ko) | 데이터 저장 장치 및 그 동작 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 1110142 Country of ref document: HK |
|
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: WD Ref document number: 1110142 Country of ref document: HK |