CN101013351A - 硬盘驱动器高速缓存存储器及重放装置 - Google Patents

硬盘驱动器高速缓存存储器及重放装置 Download PDF

Info

Publication number
CN101013351A
CN101013351A CNA2006100643904A CN200610064390A CN101013351A CN 101013351 A CN101013351 A CN 101013351A CN A2006100643904 A CNA2006100643904 A CN A2006100643904A CN 200610064390 A CN200610064390 A CN 200610064390A CN 101013351 A CN101013351 A CN 101013351A
Authority
CN
China
Prior art keywords
storer
bus
address
data
ram
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.)
Pending
Application number
CNA2006100643904A
Other languages
English (en)
Inventor
J·王
F·L·林
B·叶
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Green Ryan Te Systems Ltd.
Greenliant LLC
Original Assignee
Silicon Storage Technology Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Silicon Storage Technology Inc filed Critical Silicon Storage Technology Inc
Publication of CN101013351A publication Critical patent/CN101013351A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0638Combination of memories, e.g. ROM and RAM such as to permit replacement or supplementing of words in one module by words in another module
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • G06F2212/202Non-volatile memory
    • G06F2212/2022Flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/22Employing cache memory using specific memory technology
    • G06F2212/225Hybrid cache memory, e.g. having both volatile and non-volatile portions
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

一种使用控制器和NAND存储器的NOR模拟装置能够被用于计算机系统中代替主存储器或BIOS NOR存储器。因此,该模拟装置能够用作可引导存储器。此外,该装置可以用作硬盘驱动器的高速缓存。进一步地,在该装置中添加MP3播放器控制器的情况下,该装置能够用作独立的音频重放装置,即使当PC被关断或处于睡眠模式时。最后利用MP3播放器控制器,再次当PC处于关断模式或睡眠模式时,该装置能够访问存储在硬盘驱动器上的附加的音频数据。最后,即使当PC被关断或处于睡眠模式时,该装置也能够运行以操作硬盘驱动器,并控制附着到其上的USB端口。

Description

硬盘驱动器高速缓存存储器及重放装置
本申请要求2005年12月28日提交的临时申请60/754,937的优先权,在此并入其公开的全部内容。
技术领域
本发明涉及一种存储器装置,并且更特别地涉及一种用作例如PC的个人电脑中的盘驱动器高速缓存存储器的存储器装置,并且能够用作一种当PC处于睡眠模式或甚至断电模式时,用于重放音乐或视频的重放(playback)装置。
背景技术
易失性随机存取存储器,例如SRAM或DRAM(或SDRAM)或PSRAM(以下统称为RAM),在现有技术中是众所周知的。典型地,这些类型的易失性存储器在地址总线上接收地址信号,在数据总线上接收数据信号,并且在控制总线上接收控制信号。
并行NOR类型的非易失性存储器在现有技术中也是众所周知的。典型地,它们在与为RAM提供的相同类型的地址总线上接收地址信号,在与为RAM提供的相同类型的数据总线上接收数据信号,在与为RAM提供的相同类型的控制总线上接收控制信号。与RAM相似,NOR存储器也是随机存取存储器装置。然而,由于NOR存储器需要某些操作,例如扇区擦除或块擦除,而RAM不需要,因此将这些具有命令性质的操作以特定数据模式的序列提供给NOR装置。这就是已知的NOR命令协议。在现有技术中,有两种类型的NOR命令协议:1)与英特尔公司最初发布的协议命令集兼容的那些协议命令,以及2)与AMD最初发布的协议命令集兼容的那些协议命令。在任一种情况下,NOR存储器都电气接口连接到与RAM接口连接的相同的地址,数据和控制总线。而且,传统的NOR存储器装置还以众所周知的传统格式,例如SPI,LPC或固件集线器,来串行提供数据,地址和控制信号。
NAND类型的非易失性存储器在现有技术中也是众所周知的。然而,与并行NOR装置不同,NAND存储器将数据存储在可随机存取的块中,其中块内的单元以顺序格式存储。进一步地,地址和数据信号被提供在相同的总线上,不过是以一种多路复用的方式提供的。NAND存储器具有比NOR装置更密集的优点,因此减小了存储每个数据比特的成本。
由于NAND装置的每个数据比特的较低成本,人们试图使用NAND装置来模拟NOR装置的操作。一个被称作OneNAND(三星公司的商标)的这样的装置使用RAM存储器将数据临时缓冲到NAND存储器和从NAND存储器临时缓冲数据,因此模拟了NOR存储器的操作。然而,人们认为OneNAND装置具有两个缺点。首先,人们认为与OneNAND界面连接的用户或者主机装置必须明了数据一致性。在数据一致性中,由于用户或主机向RAM写数据,因此RAM中的数据可能新于(并因此不同于)在NAND中最初读取RAM中的数据的位置中的数据。因此,在OneNAND装置中,用户或者主机必须从RAM将数据写回到NAND中的最终位置来存储该数据,或者记住RAM中的数据是更新的数据。被认为是OneNAND装置的缺点的第二个问题是其不能提供自动的地址映射。在OneNAND装置中,一旦数据被写入到OneNAND装置的RAM部分中,主机或者用户必须发出命令或命令序列以将RAM部分中的数据写入到OneNAND装置的NAND部分中的最终位置。类似地,对于读取操作,主机或者用户必须从OneNAND的NAND部分中的指定位置发出读取命令以将该数据加载到RAM部分中,然后从RAM部分中读出该数据。
另一种被认为具有类似缺陷的现有技术装置为来自M系统的DiskOnChip装置。在DiskOnChip装置中,具有有限数量的RAM的薄控制器控制NAND存储器的操作。然而,人们认为DiskOnChip装置的控制器部分不具有任何板上非易失性可引导存储器,例如NOR存储器。
在2006年3月9日公开的美国专利申请2006/0053246示出了表明模拟NOR存储器操作的具有控制器的NAND存储器的使用的现有技术公开物。尽管该公开出版物示出具有连接到多个处理器的控制器的NAND存储器的使用,然而似乎不能通过ATA格式操作直接访问该NAND存储器。因此,在没有与外部直接存取的情况下,对于NAND存储器的所有访问都必须借助控制器来完成。
在现有技术中,计算机系统在本领域中是众所周知的。特别地,遵守“IBMPC”标准的计算机系统在本领域中是众所周知的。参考图6,示出了现有技术的计算机系统300。该计算机系统300符合“IBM PC”体系结构。该系统300典型地包括其上安装有多种部件的主板312,例如:处理器314,如英特尔公司制造的奔腾微处理器,存储器控制器集线器芯片316,也称为北桥(Northbridge)芯片316以及IO控制器集线器芯片318,也称为南桥(Southbridge)芯片318。北桥316和南桥318被称为芯片集,并且可以从英特尔公司获得。最后,主板312包括BIOS 320,其一般是NOR类型的非易失性存储器装置,其通过总线350与南桥318相连接。总线350还与系统300的其它部件相连接,例如硬盘驱动器(HDD)326,调制解调器328,USB或其它端口327,扬声器325,键盘322以及鼠标324。前述的系统在美国专利No.6,421,765中被描述并公开。也可以参见美国专利No.6,330,635。
在计算机系统300的操作中,处理器314从最初存储在BIOS 320中的代码启动。一旦处理器314执行了来自BIOS 320的初始代码,其就向HDD 326发送信号以重新获得存储在HDD 326上的另一代码/数据。之后,操作继续进行。
从前述内容可以看出,如果驱动器326被激活,则处理器314以及整个系统300一定在“接通”状态。在膝上型电脑300上的电池时间受到重视的情况下,需要保存电池电量。进一步地,期望改进这种系统300的性能。因此,需要一种能够满足前述内容的改进的装置。
发明内容
在本发明中,公开了一种新的存储器装置。该新的存储器装置使用NAND快闪存储器来模拟NOR存储器的功能。进一步地,该存储器装置用于PC系统中来代替易失性的DRAM或被用作可引导的BIOS存储器。另外,该存储器装置能够用作硬盘驱动器的高速缓存。进一步地,该存储器装置能够用作USB装置的集线器从而控制将数据传送到硬盘驱动器/从硬盘驱动器传送数据,即使在关闭了主处理器的电源时。进一步地,由于该存储器装置具有控制器,因此该控制器能眵执行其它的功能(或也可以使用专用处理器,例如DSP),例如MP3重放。因此,即使在PC被关断或处于睡眠模式时,该存储器装置也能够用作独立的音频重放装置。最后,利用MP3播放器控制器,再次在PC处于关断模式或处于睡眠模式的情况下,该存储器装置能够访问存储于硬盘驱动器上的另外的音频数据。
附图说明
图1为包含存储器控制器、与主机系统或用户相连接的存储器装置的第一实施例的方框图。
图2为示出在图1的存储器装置外部由主机或用户所见的地址空间与图1中所示的存储器装置的第一实施例中的NOR存储器、RAM存储器和NAND存储器的映射的存储器映射图。
图3为图1的存储器装置中使用的控制器的详细方框电路图。
图4为包含存储器控制器、与主机系统或用户相连接的存储器装置的第二实施例的方框图。
图5为示出在图4的存储器装置外部由主机或用户所见的地址空间与图4中所示的存储器装置的第二实施例中的NOR存储器、RAM存储器和NAND存储器的映射的存储器映射图。
图6为现有技术的“IBM PC”体系结构的计算机系统的方框图。
图7a,7b和7c为示出具有图6所示的“IBM PC”的部件的根据第一或第二实施例的存储器装置的连接和使用的方框图。
具体实施方式
参考图1,示出了存储器装置10的第一实施例。存储器装置10包括存储器控制器12,NAND存储器14,以及RAM存储器16。存储器装置10与主机装置20通过第一RAM地址总线22,第一RAM数据总线24,以及多个控制信号例如等待26,RST#28,以及CE#,OE#,和WE#30接口连接,其全部是用于RAM总线的控制信号的领域中的技术人员所熟知的。以下除非另有规定,等待26,RST#28以及CE#,OE#,和WE#30上的所有控制信号被称为第一RAM控制总线32。第一RAM地址总线22,第一RAM数据总线24和第一RAM控制总线32从主机装置20连接到存储器装置10的存储器控制器12。进一步地,如之前所讨论的,存储器装置10和主机装置20之间的接口连接可以通过串行总线,其中数据、地址和控制总线串行地连接在主机装置20和存储器装置10之间。这种存储器装置10也在本发明的范围内。
存储器控制器12具有第二RAM地址总线(与第一RAM地址总线22类似),第二RAM数据总线(与第一RAM数据总线24类似),以及第二控制总线(与第一RAM控制总线32类似),其全部被共同地简单示为连接到RAM存储器16的第二RAM总线40。存储器控制器12还具有连接到NAND存储器14的NAND 地址/数据总线和NAND控制总线(其全部被共同地示为NAND总线42)。RAM存储器16可以集成或嵌入在存储器控制器12中,作为单芯片集成电路。可替换地,RAM存储器16可以是与存储器控制器12分开的集成电路。可替换地,部分RAM存储器16可以与存储器控制器12集成以及部分RAM存储器16可以与存储器控制器12分开。RAM存储器16作为单独管芯(die)的优点将在下文中讨论。然而,RAM存储器16与存储器控制器12集成的优点是在操作中RAM存储器16可以更快速。
在一个实施例中,存储器控制器12为单个集成电路管芯。该控制器还具有嵌入在该存储器控制器集成电路管芯内的第一NOR存储器44,第二NOR存储器62,SRAM存储器46,以及SDRAM控制器48(用于控制RAM 16的操作,如果RAM 16为SDRAM类型的RAM存储器,并且在存储器控制器12之外)。当然,第一NOR存储器44和第二NOR存储器62可以是相同的物理NOR存储器的一部分。在图3中示出了存储器控制器12的实施例的详细的方框图。正如在此所使用的,“NOR存储器”意指任何类型的随机存取非易失性存储器。该NOR存储器包括但不限于浮栅型存储器,ROM,或使用俘获材料的单元等。进一步如在此所使用的,“NAND存储器”意指任何类型的串行存取非易失性存储器,其可以包括有缺陷的单元。
在一个实施例中,存储器控制器12,RAM存储器16和NAND存储器14中的每一个由单个集成电路管芯制成并且采用MCP(多芯片封装)方式被封装在一起。这种配置的优点是,对于要求大(或小)容量的存储器的用户或主机20而言,存储器的容量可以通过简单地改变容易可用的NAND存储器14的管芯或者如果速度是一个因素则改变容易可用的RAM存储器16来改变。因此,在单独的管芯中具有存储器控制器12,RAM存储器16和NAND存储器14意味着能够容易地制造存储器装置10的不同尺寸和速度或性能。
当然,也能将存储器控制器12,RAM存储器16和NAND存储器14制成单一的集成电路管芯。如果存储器控制器12,RAM存储器16和NAND存储器14由单一的集成电路管芯制成,则还可以进行供应以提供外部NAND总线42以便另外从外部提供的NAND存储器能够附着到存储器装置10以扩展存储器装置10的存储器容量。
参考图2,示出了说明如主机装置20所见的并且映射到图1所示的存储器装置10的第一实施例中的地址映射的存储器映射。如主机装置20所见的存储器映射具有两个一般部分:随机存取和大容量存储存取。随机存取部分占用较低的存储器地址位置(尽管那不是必要条件)。在随机存取部分内,最低的存储器地址用于NOR存储器存取部分50,之后是伪NOR(PNOR)存储器存取部分52,之后是RAM存取部分54,之后是结构存取部分56。每个部分将进行如下说明。
如主机装置20所见的NOR存储器存取部分50在于,当主机20在该部分50中进行操作时,结果是对物理NOR存储器44的操作。因此,存储器部分50与物理NOR存储器44的映射为一对一的。换句话说,分配给NOR部分50的存储器空间的量依赖于在存储器装置10中可用的NOR存储器44的量。在一个实施例中,嵌入在存储器控制器12中的NOR存储器44的量为4兆位,且具有2K字扇区大小和32K字块大小。进一步地,当主机装置20认为其正对NOR部分50进行操作时(如在发布读取/写入/擦除等的命令中),作为结果而发生的操作是直接对NOR存储器44进行。该NOR部分50可以由正在设法存储要求无等待时间的随机访问的性能关键代码/数据的主机装置20来使用。进一步地,如果程序存储在NOR存储器44中,则其能够在NOR存储器44内被原位执行。因此NOR存储器44能眵存储“引导”主机装置20的程序或代码。
如主机装置20所见的PNOR部分52在于,当主机20在该部分52中进行操作时,主机20认为其正对非易失性的RAM存储器16进行操作。因此,对于主机装置20,其能够类似对任何其它RAM存储器16那样对PNOR部分52进行操作,除了存储在PNOR部分52中的数据是非易失性的以外,全部都不用发布NOR协议命令。在一个实施例中,PNOR部分52恰似NAND存储器那样被分成页,且每页为8K字节,2K字节或512字节。在操作过程中,当主机装置20与存储器装置10接口连接时,其与RAM存储器16接口连接,且存储器控制器12将数据备份到NAND存储器14以及从NAND存储器14备份数据,并且保持在RAM存储器16和NAND存储器14之间的数据一致性,并且存储器控制器12将由主机装置20提供的地址映射到NAND存储器14中的实际数据的地址。由于可用的NAND存储器14的量大于实际的RAM存储器16,因此PNOR部分52可以是比RAM存储器16中可用的实际存储器的量大得多的存储器空间。
进一步地,PNOR部分52能够分为四(4)个区域,每一个映射到区(zone):RAM存储器16中的区0,区1,区2以及区3。每个区能具有不同程度的映射。在从PNOR部分52中的区域到RAM存储器16中的区的映射是一对一的情况下,于是这被称为“静态分页模式”。在从PNOR部分52中的区域到RAM存储器16中的区的映射是多对一的情况下,于是这被称为“动态分页模式”。静态分页模式映射将导致最小的等待时间,因为PNOR部分52中的存储器空间的量,例如256页(或在2K字节页的情况下为512K字节),总是映射到RAM16中的相同量的存储器空间,例如256页(或512K字节),其又映射到NAND存储器14中的256页(或512K字节)中。在那种情况下,尽管由于RAM存储器16也是随机存取所以在操作过程中存取时没有等待时间,但是在最初从NAND存储器14到RAM存储器16和从RAM存储器16到NAND存储器14的加载和存储时存在等待时间。在动态分页模式映射中,例如映射映射到RAM存储器16的512页的PNOR部分52中的存储器空间的40,000页,其又映射到NAND存储器14的40,000页,将出现更大量的等待时间。该等待时间将出现在最初的数据/程序从NAND存储器14到RAM 16中的加载中,以及在从PNOR部分52重新获得数据/程序的操作过程中,如果存在高速缓存缺失,则其可能要求数据/程序首先从NAND存储器14加载到RAM 16中。因此,对于PNOR部分52的等待时间将根据所配置的区的大小而不同。RAM存储器16的每个区的边界,并且因此,多少存储器空间从PNOR部分52的每个区域被映射到RAM存储器16中,可以由主机装置20或用户来设置。结果,主机装置20能眵配置四个区在静态分页模式下操作以存储/重新获得程序或时间临界(time critical)数据,或在动态分页模式下操作以存储/重新获得程序或非时间关键的数据,结果是如果存在高速缓存缺失则存在等待时间。
在为静态分页模式配置区的情况下,数据读取一致性不是问题,因为RNOR部分52中的相同量的存储器空间总是映射到RAM存储器16中的相同量的空间中。然而,数据写入一致性仍然必须执行。但是,在为动态分页模式配置区的情况下,必须提供数据一致性。主机装置20能够配置该区以两个高速缓存一致性模式的一个进行操作。在第一模式中,主机装置20启动高速缓存一致性模式。在该模式中,主机装置20刷新(flush)RAM存储器16中的高速缓存操作,如且当主机装置20需要时。在第二模式中,存储器控制器12通过刷新RAM存储器16中的高速缓存操作,如且当主机装置20需要时,来启动高速缓存一致性模式,以保持RAM存储器16中的高速缓存和NAND存储器14之间的数据的一致性。
一旦由用户设置了PNOR部分52的存储器空间的量和其到RAM存储器16的映射,RAM存储器16中的可用存储器空间的剩余部分就可用于RAM存储器存取部分。如主机装置20所见的RAM存储器存取部分54在于,当主机20在该部分54中进行操作时,结果是对物理RAM存储器16进行的操作。因此,存储器部分54与物理RAM存储器16的映射是一对一的。进一步地,分配给RAM部分54的存储器空间的量依赖于在存储器装置10中可用的RAM存储器16的总量,以及PONR存储器52的存储器空间部分到RAM存储器16的映射程度。当主机认为其对RAM部分54进行操作时(如在发布读取/写入等的命令中),作为结果而发生的操作是直接对RAM存储器16进行的。该RAM部分54可以由正设法使用存储器空间作为缓冲区的主机装置20来使用。由于在每个区中的PNOR部分52的存储器空间到RAM存储器16的映射可以由用户来设置,并且RAM存储器16的总量是已知的,因此PNOR部分52和RAM部分54之间的边界间接地由用户来设置。因此,如果需要具有大量的缓冲器,则可以通过在一个或多个区中减少PNOR部分52和RAM存储器16之间的映射来分配更大量的RAM部分54。此外,通过复位存储器控制器12,并在每个区中重建PNOR部分52的存储器空间和RAM存储器16之间的映射,PNOR部分52和RAM部分54之间的边界在存储器装置10的操作过程中可以改变。
对于RAM存储器16的每个区的存储器映射的边界和PNOR部分52的存储器空间的大小可以预先分配并存储到存储器控制器12中的非易失性结构寄存器60中。对于结构寄存器60的存取通过结构存取部分56来进行。非易失性的结构寄存器60可以是嵌入式NOR存储器62的一部分。可替换地,对于RAM存储器16的每个区的存储器映射的边界和PNOR部分52的存储器空间的大小可以由用户通过一个或多个芯片选择引脚来选择。在那种情况下,当存储器控制器12被加电时,不同存储器的边界能眵重新设置。NOR存储器62还能够存储用于在启动期间通过存储器控制器12的执行以及用于存储器控制器12和MCU64的操作的固件代码61。
最后,在大容量存储存取部分58中,当主机装置20访问存储器空间的该部分时,主机装置20认为其正在访问ATA盘驱动器。存储器控制器12使用公知的闪存文件系统(FFS)协议将逻辑ATA盘驱动器空间地址转变为NAND存储器14物理空间地址。在一个实施例中,对于读取操作,大容量存储存取部分58的开始部分包括加载到ATA任务文件寄存器79中的16字节逻辑地址。存储器控制器12解码该16字节的任务命令和逻辑地址并将其转变为用于访问NAND存储器14内的特定“页”的物理地址。读取来自NAND存储器14中的页的512字节的该页,然后将其加载到数据寄存器81中,在此由主机装置20顺序地或者随机地访问它们。对于写入操作,发生了反转。将要存储512字节的数据处的逻辑地址首先加载到任务文件寄存器79中。将写入命令写入到任务文件寄存器79中。存储器控制器12解码任务文件寄存器中的作为写入命令的命令并将其转变为物理地址以访问NAND存储器14中的该特定页,并在该位置将该512字节存储到数据寄存器81中。在另一个实施例中,可以存在采用所谓的乒乓(ping-pong)式结构的两个数据寄存器81(a和b)(未示出)。在那种情况下,数据寄存器中的一个81a被用于向主机装置20提供512字节的数据以及之前从NAND存储器14的一页加载的数据,而另一个数据寄存器81b用于将数据从NAND存储器14的另一页加载到数据寄存器81b中,以在来自数据寄存器81a的数据被完全读出后将数据提供给主机装置20。以这种方式,能够发生跨越来自NAND存储器14的数据的多页的连续读取操作。数据寄存器81(a和b)也能够以乒乓方式用于写入操作,因此数据的多个连续页可以写入到NAND存储器14中并且具有很少的或没有等待设立时间。
如之前所讨论的,存储器装置10和主机装置20之间的接口连接可以通过串行总线进行。特别地,这样的串行总线可以连接存储器装置10的NOR或PNOR区域与主机装置20,且常规并行总线连接存储器装置10的RAM部分与主机装置20。
参考图3示出了与RAM存储器16和NAND存储器14接口连接的存储器控制器12的详细方框图。存储器控制器12具有微控制器64。微控制器64完成或执行FFS的所有簿记功能。此外,其完成或执行缺陷管理(DM)和高速缓存数据一致性算法,以及高速缓存刷新替换算法。最后,微控制器64完成或执行高速缓存分页方案算法。所有这些操作都是借助存储在NOR存储器62中的固件或程序代码61来实现的,包括存储器控制器12的启动操作或初始化。
微控制器64连接到第二NOR存储器62,其如之前所讨论的也存储用于通过微控制器64来执行的固件61。除了存储非易失性结构寄存器60之外,NOR存储器62还存储用于FFS和DM的操作的固件。
微控制器64还通过MUX 74与SRAM存储器46接口连接。SRAM存储器64用作微控制器64的局部高速缓冲器以存储运行时间数据。此外,SRAM存储器46能够存储缺陷映射高速缓存,和FFS数据结构。
尽管,相对于硬件部件对存储器控制器12进行了详细描述,但是下文中所描述的所有功能也可以采用用于通过微控制器64执行的软件来实现。
存储器控制器12包括当前高速缓存页地址寄存器66,其可以被实施为具有内容可寻址存储器66的性质。CAM 66的功能是当在对PNOR部分52的读取或写入操作期间存在访问失败时保持当前PNOR高速缓存页地址并更新CAM 66。CAM 66内的每个入口具有三个部分:页地址部分66a,索引地址部分66b,以及状态部分66c。随后关于存储器控制器和CAM存储器66的操作的讨论是关于下述实例的,然而应当理解本发明并不限于下述实例。假设来自主机装置20的地址为32比特,其包含21个最高有效位(位11-31)以及11个最低有效位(位0-10)。该21个最高有效位包括页地址,而该11个最低有效位包含偏移地址。CAM存储器66中的每一个入口还包含包括21比特的页地址部分66a,包括9比特的索引地址部分66b,以及包括12比特的状态部分,其由下述构成:1比特的有效(或无效);1比特的污损(dirty)(或干净(clean));1比特的静态(或动态);1比特的主机启动的高速缓存一致性(或控制器启动的);以及8比特的最后访问时间标记。在32比特来自主机装置20的情况下,该主机装置能够寻址232字节或1GB量的存储器空间。如下文中将要讨论的,存储器控制器12使用来自CAM存储器66的9比特的索引地址部分与来自主机装置20的偏移地址的11比特来形成20比特地址从而能够寻址1MB的RAM16。当然,这些数字仅是作为实例的并且没有限制本发明。
存储器控制器12还包括命中/失败比较逻辑68。该命中/失败比较逻辑68从地址总线22接收地址信号,以及从控制总线32接收控制信号。然后该命中/失败比较逻辑68将来自主机装置20的32比特的地址的21比特的页地址发送到CAM存储器66。CAM存储器66将那些21比特的页地址与存储在CAM存储器66的每个入口中的页地址66a进行比较。如果命中,即来自主机装置20的该21比特的页地址与CAM存储器66中的入口之一相匹配,则CAM存储器66输出相关联的9比特的索引地址66b到MUX 70。如果失败,则该命中/失败比较逻辑68产生读取失败信号或写入失败信号。将该读取失败信号和写入失败信号提供给微代码控制器(MCC)/错误码校正(ECC)单元72作为用于MCC/ECC单元72执行数据一致性的信号。提供给MCC/ECC单元72的该信号是命中信号:其表明存储在RAM存储器16中的当前页地址中的一个是如在地址总线22上所提供的来自主机装置20的地址,或者是失败信号:其表明存储在RAM存储器16中的当前页地址中没有一个是如在地址总线22上所提供的来自主机装置20的地址。最后,该命中/失败比较逻辑68还连接到等待状态信号26。当存储器控制器12希望通知主机装置20存储器控制器12希望保持总线循环操作时产生等待状态信号26。等待状态信号26被取消声明(de-asserted)以释放总线22/24/32来允许主机装置20重新开始操作。被存储器控制器12声明(assert)的等待状态信号26的一个实例是在存在读取/写入失败并且存储器控制器12需要从NAND存储器14中的地址重新获得数据并将其加载到RAM存储器16中时。在从NAND存储器14重新获得数据并将其加载到RAM存储器16中的时间期间,由存储器控制器12来声明等待状态信号26。
存储器控制器12还包括在微控制器64的控制下进行操作的MCC/ECC单元72。MCC/ECC单元72监视读取失败/写入失败信号用于高速缓存数据一致性、刷新替换和分页操作。此外,在微控制器64的控制下,其操作NAND存储器14并且提供NAND存储器14的缺陷管理操作。进一步地,在微控制器64的控制下,MCC/ECC单元72提供DMA功能以在NAND存储器14、RAM存储器16和SRAM存储器46之间移动数据。最后,MCC/ECC单元72对存储在NAND存储器14中的数据执行错误检测和校正。
存储器控制器12还包括提供安全和数字版权管理的密码引擎90。此外,存储器控制器12可以具有嵌入其中即形成在同一集成电路管芯上的附加RAM存储器92,以用于增加RAM存储器16的量。如之前所表明的,RAM存储器16可以是独立的集成电路管芯,在这种情况下,嵌入到存储器控制器12中的RAM存储器92扩充了RAM存储器16。然而,如果RAM存储器16和存储器控制器12集成到相同管芯中,则RAM存储器16和RAM存储器92都可以是同一个存储器阵列的一部分。
现在将相对于所述多种操作模式来描述存储器装置10。在加电期间,命中/失败比较逻辑68产生等待信号并声明该等待状态信号26。存储器控制器12从非易失性寄存器60读取结构参数并将它们加载到非易失性寄存器46(其可以是SRAM 46的一部分)。静态页,即静态地映射到PNOR部分52的来自NAND存储器14的数据也从NAND存储器14中读出并存储到RAM存储器16中。这由微控制器64通过MCC/ECC 72执行FFS协议以将来自NAND存储器14的页地址进行转变并产生物理地址和控制信号给NAND存储器14以从其重新获得数据并将它们存储到RAM存储器16中来完成。在加电期间,MCU 64和MCC/ECC 72还扫描NAND存储器14以发现主索引表。读取主索引表并将其存储到本地SRAM存储器46中。MCU 64将核对主索引表的数据结构完整性。MCU 64和MCC/ECC 72也扫描NAND存储器14以确定是否需要重建主索引表。MCU 64和MCC/ECC 72还将来自NAND存储器14的两页数据送入本地SRAM存储器64中。被称为V页的来自NAND存储器14的首先两页数据包含用于将主机装置20的逻辑地址映射到NAND存储器14的物理地址的数据并且具有跳过NAND存储器14中的有缺陷的扇区的能力。然后FFS准备好接受映射转变请求。然后命中/失败比较逻辑68取消声明等待状态信号26,即释放等待状态信号26。
应当注意的是在加电期间,当存储器控制器12正从NAND存储器14重新获得静态页并将其存储到RAM存储器16中,以及执行其它辅助操作(overhead)功能,例如更新NAND存储器14的主索引表时,存储器装置10仍然可被主机装置20使用。特别地,由于等待状态信号26的声明只影响指向对存储空间的PNOR部分52的寻址请求的那些操作,所以即使在加电期间NOR存储器44也可以被主机装置20访问。
NOR存储器操作
在NOR存储器44读取操作中,主机装置20将在存储空间的NOR存储器存取部分50内的地址总线22上的地址信号发送到存储器装置10。此外,由主机装置20将在控制总线32上的适当的控制信号发送到存储器装置10。由于地址信号处于除了在PNOR存储器存取部分52中以外的空间中,因此命中/失败比较逻辑68未被激活,并且等待状态信号26未被声明。将地址信号和控制信号提供给NOR存储器44,在此读取来自于所提供的地址的数据。然后将该数据沿数据总线提供到MUX 84并且沿数据总线24向外提供到主机装置20,从而完成读取循环。
在NOR存储器44写入或者编程操作中,主机装置20将在存储空间的NOR存储器存取部分50内的地址总线22上的地址信号发送到存储器装置10。此外,由主机装置20将在控制总线32上的适当的控制信号发送到存储器装置10。由于地址信号处于除了在PNOR存储器存取部分52中以外的空间中,因此命中/失败比较逻辑68未被激活,并且等待状态信号26未被声明。将地址信号和控制信号提供给NOR存储器44。将要被写入或编程的数据和程序命令沿数据总线24从主机装置20发送到存储器控制器12和MUX 84中。然后将数据从MUX84发送到NOR存储器44,在这里在地址总线22上所提供的地址处数据被编程到NOR存储器44中。主机装置20能够执行字节程序操作,允许将NOR存储器44以一个字节接一个字节为基础进行编程。当数据被写入到NOR存储器44中时,完成写入或编程循环。
在NOR存储器44擦除操作中,例如扇区擦除,或块擦除,主机装置20将在存储空间的NOR存储器存取部分50内的地址总线22上的地址信号发送到存储器装置10。此外,由主机装置20将在控制总线32上的适当的控制信号发送到存储器装置10。由于地址信号处于除了在PNOR存储器存取部分52中以外的空间中,因此命中/失败比较逻辑68未被激活,并且等待状态信号26未被声明。将地址信号和控制信号提供给NOR存储器44。沿数据总线24将表示擦除命令协议的数据信号从主机装置20发送到存储器控制器12和MUX 84中。然后从MUX 84将数据发送到NOR存储器44,在这里由NOR存储器44对数据进行解码然后执行擦除操作。当NOR存储器44完成擦除循环时,完成了擦除循环。
PNOR存储器操作—读取
在PNOR存储器读取操作中,主机装置20将在存储空间的PNOR存储器存取部分52内的地址总线22上的地址信号发送到存储器装置10。存在两种可能性:读取命中和读取失败。
在读取命中的情况下,在地址总线22上提供的地址信号的页地址部分由命中/失败比较逻辑68接收,并与当前在RAM存储器16中的,如被存储在CAM66中的地址进行比较。如果在地址总线22上提供的页地址在存储在CAM 66中的页地址之内,则命中。命中/失败逻辑68激活MUX 70,以便然后将地址和控制信号引导到RAM存储器16,并且将来自CAM存储器66的相关联的索引地址66b与来自主机装置20的偏移地址串接以寻址RAM存储器16。然后将从RAM存储器16的较低地址读出的数据发送到MUX 80,在这里然后将它们提供给MUX 84(MUX 80的默认状态),其已经被命中/失败比较逻辑68指示(未示出)允许将数据沿数据总线24发送到主机装置20,从而完成读取循环。
在读取失败的情况下,存在多种可能性。首先是被称为无高速缓存刷新的读取失败的可能性。在来自地址总线22的地址信号的页地址部分与来自CAM66的页地址寄存器66a的比较导致失败的情况下,即地址总线22上的页地址不在存储于RAM存储器16中的页地址之内,那么命中/失败比较逻辑68发送读取失败信号到MCC/ECC单元72以便MCC/ECC单元72启动读取一致性循环。此外,命中/失败比较逻辑68声明在等待状态信号26上的信号。在MCU 64的控制下,MCC/ECC单元72执行FFS操作以将由主机装置20提供的地址转变为NAND存储器14中的物理地址。然后MCC/ECC单元72产生适当的地址和控制信号给NAND存储器14,和适当的地址和控制信号给RAM存储器16。
从NAND存储器14读取包含来自地址总线22上所指定的地址的数据的整页数据,并将其经过MUX 80传送到RAM存储器16,在此其被写入到由MCC/ECC单元72所指定的RAM存储器16中的整页位置中,并且由MCC/ECC单元72在其上进行操作以通过错误校正检查等来确保数据的完整性。然后更新当前的页地址寄存器CAM 66以在当前读取失败地址内添加该地址页的地址。命中/失败比较逻辑68取消声明在等待状态信号26上的信号。此外,MCU64切换MUX 80到默认位置。命中/失败比较逻辑68发送索引地址66b到MUX70,在这里其与来自地址总线22的偏移地址部分相结合,以寻址RAM存储器16。然后来自对RAM存储器16的该读取操作的数据通过MUX 80以及通过MUX 84被提供到至主机装置20的数据总线24,从而完成该循环。由于从NAND存储器14读出的数据的量是以页为基础的,因此整页的数据必须被存储到RAM存储器16中。这种没有高速缓存刷新的读取失败的情况假设RAM存储器16的整页可用于存储来自NAND存储器14的数据,或者将存储整页数据的RAM存储器16中的位置包含一致的数据(和NAND存储器14中的数据相同),然后从NAND存储器14读出的整页的数据能够被存储到RAM存储器16中的位置中。高速缓存刷新意味着从RAM存储器16到NAND存储器14的数据写入,由此刷新数据一致性问题的高速缓存(RAM存储器16)。
读取失败的另一个可能的情况被称为具有高速缓存刷新的读取失败。在该情况下,在不重写RAM存储器16中某些比NAND存储器14中的数据更新的数据的情况下,来自NAND存储器14的整页数据不能被存储在RAM存储器16中。这产生了数据一致性问题。因此,在来自NAND存储器14的处于不同位置的数据可以被读取到RAM存储器16中之前,RAM存储器16中的数据页必须首先写入到NAND存储器14中。操作顺序如下。来自主机装置20的地址总线22的地址信号的页地址部分与来自CAM 66的页地址信号66a进行比较以确定是否来自地址总线22的地址信号在当前页地址的任何一个之内。该比较导致失败,使得命中/失败比较逻辑68发送读取失败信号到MCC/ECC单元72以便MCC/ECC单元72启动读取一致性循环。此外,命中/失败比较逻辑68声明在等待状态信号26上的信号。MCC/ECC单元72在MCU 64的控制下确定RAM存储器16中的数据页必须首先写入到NAND存储器16中,因为存在数据一致性问题来自NAND存储器14的数据应当被读取到RAM存储器16中。MCU 64执行FFS操作以将来自RAM存储器16的地址转变为NAND存储器14中的地址。
从RAM存储器16读取整页的数据,该整页的数据经过MUX 80并提供到NAND存储器14,在此将它们存储到NAND存储器14中。其后,由MCU64通过FFS操作将来自主机装置20的地址变换为物理NAND地址。然后在MCU64的指示下MCC/ECC单元72产生适当的地址和控制信号给NAND存储器14并且使用来自CAM存储器66的索引地址66b、控制信号和来自MCC/ECC 72的偏移地址部分来寻址RAM存储器16。从NAND存储器14读出的整页的数据之后被通过MUX 80从NAND存储器14传送到RAM存储器16,在此其被写入到由MCC/ECC单元72和索引地址66b所指定的RAM存储器16中的位置页中,并且通过MCC/ECC单元72在其上被操作以通过错误校正检查等确保数据的完整性。CAM 66的当前页地址寄存器66a之后被更新以添加包含当前读取失败地址的页地址,以及与其相关联的索引地址66b。命中/失败比较逻辑68取消声明在等待状态信号26上的信号。此外,MCU 64将MUX 80切换到默认位置。命中/失败比较逻辑68发送索引地址66a到MUX 70,在此它们和来自地址总线22的偏移地址结合以启动RAM存储器16中的读取操作。然后将该数据从RAM存储器16中读出,并且通过MUX 80以及通过MUX 84将该数据提供到至主机装置20的数据总线24,从而完成读取循环。
在读取命中、没有高速缓存刷新的读取失败、以及具有高速缓存刷新的读取失败的每种情况下,从主机装置20的角度来观察,该操作与对RAM装置的读取没有任何的不同,且在读取失败的情况下存在等待时间。主机装置20不必处理地址转变和/或数据一致性。
PNOR存储器操作—写入
在PNOR存储器写入操作中,主机装置20将在存储空间的PNOR存储器存取部分52内的地址总线22上的地址信号连同将被写入到RAM存储器16中的数据一起发送到存储器装置10。存在两种可能性:写入命中和写入失败。
在写入命中的情况下,在地址总线22上提供的地址信号的页地址部分由命中/失败比较逻辑68来接收,并与CAM 66中的页地址66a进行比较,其反映当前存储在RAM存储器16中的数据。在地址总线22上提供的页地址在CAM66中所存储的页地址之内。命中/失败逻辑68激活MUX 70以便然后将地址和控制信号引导到RAM存储器16。来自CAM 66的索引地址66b和来自地址总线22的地址信号的偏移地址部分相结合以产生用于通过MUX 70访问RAM存储器16的地址信号。通过MUX 84提供来自数据总线24的数据并通过MUX80将该数据提供给RAM存储器16,在此其然后被写入到RAM存储器16中,从而完成写入命中循环。
应当注意的是在写入命中操作之后,RAM存储器16中的数据将与来自NAND存储器14中的同样位置的数据不一致。实际上,RAM存储器16中的数据将是最当前的数据。为了解决数据一致性的问题,存在两种解决方案。
第一,在按照需要的基础上,存储器装置10能够自动解决数据一致性的问题。如之前所讨论的,例如,在具有高速缓存刷新操作的读取失败的情况下,如果RAM存储器16中的数据页需要被替换以存储新要求的来自NAND存储器14的数据页,则RAM存储器16中的更为当前的数据将被写回到NAND存储器14中。如下文将要讨论的,MCU 64还将通过在具有高速缓存刷新操作的写入失败中将数据写回到NAND存储器14中来对RAM存储器16中的数据执行高速缓存刷新。
对于数据一致性问题的替换解决方案是在主机装置20的控制下执行数据一致性。因此,主机装置20可以发布高速缓存刷新命令使得存储器控制器12将来自RAM存储器16的不一致的数据写回到NAND存储器14中。该操作的优点是其能够由主机装置20在任何时间执行,包含但是不限于关键事件,例如改变应用,关闭,或接收到的低功率中断。然而,由于存储器控制器12还能够自动执行数据一致性,在主机装置20的用户未能执行数据一致性操作的情况下,这样的操作还将根据需要由存储器控制器12来执行。
在写入失败的情况下,存在多种可能性。首先是被称为没有高速缓存刷新的写入失败的可能性。在来自地址总线22的地址信号的页地址部分与来自CAM66的页地址信号66a的比较导致失败的情况下,即地址总线22上的地址不在存储于RAM存储器16中的页地址之内,那么命中/失败比较逻辑68发送写入失败信号到MCC/ECC单元72。此外,命中/失败比较逻辑68声明在等待状态信号26上的信号。MCC/ECC单元72确定是否来自NAND存储器14的新数据页,包含来自主机装置20的在地址总线22上所指定的地址处的数据,将存储在旧的一致数据或RAM存储器16的空白区域之上。在那种情况下,在将数据从NAND存储器14传送到RAM存储器16中的位置之前,不需要存储器控制器12执行写入一致性循环。MCC/ECC单元72在MCU 64的控制下执行FFS操作来将由主机装置20提供的地址转变成NAND存储器14中的物理地址。然后MCC/ECC单元72产生适当的地址和控制信号给NAND存储器14,以及适当的地址和控制信号给RAM存储器16。
包含来自在地址总线22上所指定的地址的数据的整页的数据,被从NAND存储器14中读出并经过MUX 80传送到RAM存储器16,在此其被写入到由MCC/ECC单元72和索引地址66b所指定的RAM存储器16中的整页位置中,并且通过MCC/ECC单元72在其上被操作以通过错误校正检查等确保数据的完整性。然后更新CAM 66的当前页地址寄存器66a以在当前的写入失败地址和相关联的索引地址66b(索引地址66b是RAM存储器16中的较高的9比特地址,在此存储数据页)内添加该地址页的地址。命中/失败比较逻辑68取消声明在等待状态信号26上的信号。此外,MCU将MUX 80切换到默认位置。命中/失败比较逻辑68发送索引地址66b到MUX 70,在此它们与来自地址22的偏移地址相结合,以启动RAM存储器16中的写入操作。然后从主机装置20经过MUX 84以及经过MUX 80将数据写入到RAM存储器16中,从而完成该循环。现在在RAM存储器16中的数据不再与在NAND存储器14中的相同地址处的数据相一致。该一致性问题由存储器控制器12自动地根据需要启动写入高速缓存刷新来解决,或由主机装置20在任何时间启动写入高速缓存刷新来解决,全部都如之前所讨论的。
另一个写入失败的可能的情况被称为具有高速缓存刷新的写入失败。在该情况下,在不重写RAM存储器16中某些比NAND存储器14中的数据更新的数据的情况下,来自NAND存储器14的整页的数据不能被存储到RAM存储器16中。这产生数据一致性问题。因此,在来自NAND存储器14的处于不同位置的数据能够被读取到RAM存储器16中之前,RAM存储器16中的数据页必须首先被写入到NAND存储器14中。操作的顺序如下。来自主机装置20的地址总线22的信号的页地址部分与来自CAM 66的页地址信号66a进行比较以确定是否来自地址总线22的地址信号在当前页地址的任何一个之内。该比较导致失败,使命中/失败比较逻辑68发送写入失败信号到MCC/ECC单元72以便MCC/ECC单元72启动写入一致性循环。此外,命中/失败比较逻辑68声明在等待状态信号26上的信号。因为存在数据一致性问题来自NAND存储器14的数据应当被读取到RAM存储器16中,所以MCC/ECC单元72在MCU 64的控制下确定RAM存储器16中的数据页必须首先写入到NAND存储器16中。MCU单元64执行FFS操作以将来自RAM存储器16的地址转变为NAND存储器14中的地址。
从RAM存储器16读取整页数据,并且该整页数据经过MUX 80并提供到NAND存储器14,在此它们被存储到NAND存储器14中。其后,通过FFS操作将来自主机装置20的地址变换为物理NAND地址。然后MCC/ECC单元72使用来自FFS的物理NAND地址产生适当的地址和控制信号给NAND存储器14,以及索引地址和控制信号给RAM存储器16。然后将自NAND存储器14读取的整页的数据从NAND存储器14经过MUX 80传送到RAM存储器16,在此其被写入到借助来自MCC/ECC单元72的偏移地址和来自索引地址寄存器66b的索引地址所指定的RAM存储器16中的位置页中,并且通过MCC/ECC单元72在其上被操作以通过错误校正检查等确保数据的完整性。然后将CAM 66的当前页地址寄存器进行更新以添加包含当前读取失败地址的页地址66a和相关联的索引地址66b。命中/失败比较逻辑68取消声明在等待状态信号26上的信号。此外,MCU将MUX 80切换到默认位置。命中/失败比较逻辑68发送索引地址66b到MUX 70,在此它们与来自地址总线22的偏移地址相结合以形成写入到RAM存储器16中的地址。然后从主机装置20到数据总线24经过MUX 84并且经过MUX 80将数据写入到RAM存储器16中。与前面关于没有高速缓存刷新的写入失败的讨论相类似,现在RAM存储器16中的数据是更为当前的并且产生了数据一致性问题,该问题能够通过主机装置20启动高速缓存刷新,或通过存储器控制器12启动高速缓存刷新操作来解决。
在写入命中,没有高速缓存刷新的写入失败、和具有高速缓存刷新的写入失败的每一种情况下,从主机装置20的角度来观察,该操作与对RAM装置的写入没有任何的不同,且在写入失败的情况下具有等待时间。主机装置20不必处理地址转变和/或数据一致性。
为了进一步减小在具有高速缓存刷新的读取失败或具有高速缓存刷新的写入失败的情况下由首先执行从RAM存储器16到NAND存储器14的写入操作以解决数据一致性问题的需要所引起的等待时间,可以执行如下操作。将被写入到NAND存储器14中的数据页首先从RAM存储器16写入到本地SRAM46中。这是比直接写入到NAND存储器14中快得多的操作。其后,具有高速缓存刷新的读取失败或写入失败高速缓存刷新操作继续进行,似乎其是没有高速缓存刷新的读取失败或没有高速缓存刷新操作的写入失败。在读取失败或写入失败操作完成后,当存储器装置10空闲或访问局限于在NOR存储器存取部分50或RAM存储器存取部分54或结构寄存器存取部分56中的操作时,存储在本地SRAM 46中的数据能眵在后台操作中被写入到NAND存储器14中。
应当注意,在PNOR操作中,从主机装置20的角度来观察,该操作与对RAM存储器所执行的没有任何的不同,且数据是非易失性的,但是主机装置20不发布NOR协议命令,例如扇区或块擦除。然而,在本发明内存储器装置10还能够使用RAM存储器16和NAND存储器14模拟NOR操作。在那样的情况下,对于NOR存储器存取部分50进行映射的存储空间将延伸以超过仅对NOR存储器44的映射。NOR存储器存取部分50能够被映射到RAM存储器16的一部分,且RAM存储器16被静态地映射到NAND存储器14,从而在访问的过程中不出现等待问题。来自NAND存储器14的数据在加电时将被加载到RAM 16中,并且对NOR存储器存取部分50的读取/写入将从RAM存储器16读取或写入到RAM存储器16。仅其它的变化将用于存储器控制器12响应于NOR协议命令。如之前所讨论的,当由主机装置20发布这样的NOR协议命令时,它们被提供作为唯一的数据模式的序列。在数据总线24上提供的数据将经过MUX 84并且经过MUX 80。由于在地址总线上提供的地址表明操作将在由RAM存储器16所模拟的NOR存储器存取部分50中进行,因此切换MUX 74以允许MCU 64接收该数据模式。一旦该数据模式被解码为NOR命令,则MCU利用那些NOR命令操作NAND存储器14,如果例如该命令为擦除。当然,作为易失性存储器的RAM存储器16不必被“擦除”。因此,借助模拟NOR存储器44的RAM存储器16,NOR协议命令的执行将导致比执行NOR协议命令的真实NOR存储器44更快的操作。进一步地,该模拟操作不需要模拟全部NOR协议命令集。代替地,控制器12能够模拟部分NOR协议命令集。因此,如这里所使用的,术语“NOR协议命令”表示来自由例如英特尔公司或AMD公司所发布的全部NOR协议命令集的一个或多个命令。
RAM存储器操作
在RAM存储器16读取操作中,主机装置20将在存储空间的RAM存储器存取部分54内的地址总线22上的地址信号发送到存储器装置10。此外,由主机装置20将在控制总线32上的适当的控制信号发送到存储器装置10。由于地址信号在RAM存储器存取部分54中,因此命中/失败比较逻辑68激活MUX70以允许来自地址总线22和控制总线32的地址/控制信号被提供给RAM存储器16。然而,等待状态信号26没有被声明。此外,来自主机装置20的地址被解码并且连同来自控制总线32的控制信号一起形成提供给RAM存储器16的地址信号,在此读取来自所提供的地址的数据。然后将该数据沿数据总线提供到MUX 80和MUX 84并且沿数据总线24向外提供到主机装置20,从而完成读取循环。
在RAM存储器16写入操作中,主机装置20将在存储器空间的RAM存储器存取部分54内的地址总线22上的地址信号发送到存储器装置10。此外,由主机装置20将在控制总线32上的适当的控制信号发送到存储器装置10。由于地址信号在RAM存储器存取部分54中,因此命中/失败比较逻辑68激活MUX 70以允许来自地址总线22和控制总线32的地址/控制信号被提供给RAM存储器16。然而,等待状态信号26没有被声明。此外,来自主机装置20的地址被解码并且连同来自控制总线32的控制信号一起形成提供给RAM存储器16的地址信号,在此将来自数据总线24的数据在所提供的地址处写入到RAM存储器16中。
由主机装置20的观察,RAM存储器存取部分中的读取或写入操作与访问RAM装置没有任何的不同且没有等待。
结构寄存器操作
在结构寄存器操作中,主机装置20将在存储器空间的结构寄存器存取部分56内的地址总线22上的地址信号发送到存储器装置10。此外,由主机装置20将在控制总线32上的适当的控制信号发送到存储器装置10。然后将数据写入到非易失性寄存器60中。
NAND存储器操作
在NAND存储器14读取操作中,主机装置20将在存储器空间的大容量存储存取部分58或ATA存储器存取部分58内的地址总线22上的地址信号发送到存储器装置10。此外,由主机装置20将在控制总线32上的适当的控制信号发送到存储器装置10。由于地址信号处于除了在PNOR存储器存取部分52中以外的空间中,因此命中/失败比较逻辑68未被激活,并且等待状态信号26未被声明。主机装置20遵从ATA协议以对于ATA读取/写入命令来读取/写入任务文件寄存器79。任务文件寄存器79包括用于存储:命令、状态、柱面(cylinder)、磁头(head)、扇区等的寄存器。MCC/ECC单元72在MCU 64的控制下操作将主逻辑地址转变为NAND物理地址的闪存文件系统,且具有避免使用有缺陷的NAND扇区的能力。参考美国专利6,427,186;6,405,323;6,141,251和5,982,665,其公开的全部内容被并入作为参考。每个来自主机装置20的逻辑地址在被称为V页的表中具有入口。该入口的内容指向存储逻辑地址数据的物理地址。
为了从NAND存储器14读取数据页,将地址信号和控制信号提供给NAND存储器14。主机装置20遵从ATA协议,并且任务文件寄存器79存储命令和逻辑地址。每个扇区大小为512字节。主机装置20通过读取存储器空间的任务文件寄存器存取部分58中的状态寄存器79来检验存储器10是否准备就绪。主机装置20将“读取”命令写入到存储器空间58内的命令寄存器79中。MCU64执行逻辑地址到物理地址的FFS转变并且MCC/ECC单元72在MCU 64的控制下从NAND存储器14读取数据,并将数据页传送到缓冲器81中。在整页数据被存储到数据寄存器81中,并且通过MCC/ECC单元72在其上被操作以通过错误校正检查等确保数据的完整性之后,沿数据总线24将数据从存储器控制器12中读出。
写入NAND存储器14的操作与从NAND存储器14读取的操作相类似。主机装置20通过读取任务存储器空间58部分中的状态寄存器79来检查存储器10是否准备就绪。主机装置20将一页数据写入到数据寄存器81中,然后将“写入”命令和逻辑地址一起写入到命令寄存器79中。其后,使用FFS的MCU 64将逻辑地址转变为物理地址并且MCC/ECC单元72在MCU 64的控制下将来自ATA缓冲器81的该一页数据写入到NAND存储器14中。
FFS通过定位将要被更新的页的物理地址来更新数据页。FFS发现已擦除的扇区作为“缓冲器扇区”或者如果没有已擦除的扇区,则其首先对扇区执行擦除操作。然后FFS读取旧的还没有被修改并且编程到缓冲器扇区的数据。然后FFS将更新的页数据进行编程。然后其等待下一请求。如果下一页在同一个擦除扇区上,则FFS继续更新操作。如果下一页在正传送的擦除扇区之外,则未修改数据的其余部分将被复制到缓冲器扇区。映射表入口被改变为缓冲器扇区物理地址。然后开始新的页更新操作。
参考图4示出了存储器装置10的第二实施例。存储器装置110与图1所示的存储器装置10相类似。因此,类似的数字代表类似的部分。存储器装置110和存储器装置10之间唯一的不同点为在存储器装置100中,第二RAM总线40直接将RAM存储器100连接到主机装置20,而不是连接到存储器控制器12。因此,在存储器装置110中,主机装置具有对RAM存储器100的直接访问和控制。
存储器装置10的实施例和存储器装置110的实施例之间的该不同点反映在图5所示的存储器映射中。与存储器装置10类似,对存储器装置10的存储器映射包括映射到NOR存储器44的NOR存储器存取部分50、映射到存储器装置110中的RAM存储器16的PNOR存储器存取部分52,其然后被映射到NAND存储器14、以及映射到RAM存储器16的RAM存储器存取部分54。然而,在RAM存储器100可直接被主机装置20通过第二RAM总线40访问的情况下,对存储器装置110的存储器映射还包含另一个RAM存储器存取部分55,其直接映射到RAM存储器100。然后存储器装置110进一步包括结构寄存器存取部分56,以及最后包括ATA存储器存取部分58,其与关于存储器装置10所描述的类似。
在存储器控制器12与主机装置20和NAND存储器14接口连接的情况下,存储器装置10比现有技术中的存储器装置提供更多的保护。特别地,存储器控制器12能够限制对存储在NAND存储器14中的特定数据的访问,如在涉及数字版权管理的关注中。进一步地,存储器控制器12能够加密存储于NAND存储器14中的数据来保护敏感的数据。最后,存储器控制器12能够提供保护以避免NAND存储器14的一个或多个特定部分中的意外数据擦除。最后利用存储在NOR存储器62中的程序,存储器控制器12成为自启动装置,因为它不需要来自主机装置20的初始命令。
本发明存在多个方面。首先,存储器装置10或110为通用的存储器装置。该存储器装置具有存储器控制器,该存储器控制器具有用于接收RAM地址信号的第一地址总线,用于接收RAM数据信号的第一数据总线,以及用于接收RAM控制信号的第一控制总线。存储器控制器具有嵌入在其中的NOR存储器并且进一步具有用于接口连接易失性的RAM存储器的第二地址总线,用于接口连接易失性的RAM存储器的第二数据总线,以及用于接口连接易失性的RAM存储器的第二控制总线。该控制器进一步具有用于接口连接非易失性NAND存储器的第三地址/数据总线,和用于接口连接非易失性NAND存储器的第三控制总线。该存储器装置进一步具有连接到所述第二地址总线,所述第二数据总线和所述第二控制总线的RAM存储器。该存储器装置进一步具有连接到第三地址/数据总线和第三控制总线的非易失性NAND存储器。该控制器响应于在第一地址总线上提供的地址信号,由此NOR存储器响应于在第一地址总线上提供的第一地址范围,由此RAM存储器响应于在第一地址总线上提供的第二地址范围,以及由此NAND存储器响应于在第一地址总线上提供的第三地址范围。
在本发明的另一方面中,该存储器装置是通用的存储器装置,其中用户能够限定存储器空间分配。该存储器装置具有存储器控制器,该存储器控制器具有用于接收RAM地址信号的第一地址总线,用于接收RAM数据信号的第一数据总线,和用于接收RAM控制信号的第一控制总线。该存储器控制器具有嵌入在其中的NOR存储器并且进一步具有用于接口连接易失性RAM存储器的第二地址总线,用于接口连接易失性RAM存储器的第二数据总线,以及用于接口连接易失性RAM存储器的第二控制总线。该控制器进一步具有用于接口连接非易失性NAND存储器的第三地址/数据总线,和用于接口连接非易失性NAND存储器的第三控制总线。该存储器装置进一步具有与所述第二地址总线,所述第二数据总线,以及所述第二控制总线相连接的RAM存储器。该存储器装置进一步具有与第三地址/数据总线和第三控制总线相连接的非易失性NAND存储器。该存储器装置响应于限定存储器空间分配的用户,其中在第一地址总线上提供的第一地址范围内,该存储器装置响应于NOR存储器操作,包含响应于NOR协议命令,以及在第一地址总线上提供的第二地址范围内,该存储器装置响应于RAM操作,以及在地址总线上提供的第三地址范围内,该存储器装置响应于用作ATA盘驱动装置的NAND存储器,其中第一,第二和第三地址范围都可以由用户限定。
在本发明的另一方面中,该存储器装置具有存储器控制器,该存储器控制器具有用于接收RAM地址信号的第一地址总线,用于接收RAM数据信号的第一数据总线,和用于接收RAM控制信号的第一控制总线。该存储器控制器进一步具有用于接口连接易失性RAM存储器的第二地址总线,用于接口连接易失性RAM存储器的第二数据总线,以及用于接口连接易失性RAM存储器的第二控制总线。该控制器进一步具有用于接口连接非易失性NAND存储器的第三地址/数据总线,和用于接口连接非易失性NAND存储器的第三控制总线。该存储器装置进一步具有与所述第二地址总线,所述第二数据总线,以及所述第二控制总线相连接的RAM存储器。该存储器装置进一步具有与第三地址/数据总线和第三控制总线相连接的非易失性NAND存储器。该控制器进一步具有用于接收第一地址总线上的第一地址并将第一地址映射到非易失性NAND存储器中的第二地址的装置,且易失性RAM存储器对于到或来自非易失性NAND存储器中的第二地址的数据用作高速缓存,以及用于保持存储于作为高速缓存的易失性RAM存储器中的数据和在非易失性NAND存储器中的第二地址处的数据之间的数据一致性的装置。
在本发明的另一方面中,该存储器装置具有存储器控制器,该存储器控制器用于接收NOR地址信号的第一地址总线,用于接收NOR数据信号和数据协议命令的第一数据总线,和用于接收NOR控制信号的第一控制总线。该存储器控制器进一步具有用于接口连接易失性RAM存储器的第二地址总线,用于接口连接易失性RAM存储器的第二数据总线,以及用于接口连接易失性RAM存储器的第二控制总线。该控制器进一步具有用于接口连接非易失性NAND存储器的第三地址/数据总线,和用于接口连接非易失性NAND存储器的第三控制总线。该存储器装置进一步具有与所述第二地址总线,所述第二数据总线,以及所述第二控制总线相连接的RAM存储器。该存储器装置进一步具有与第三地址/数据总线和第三控制总线相连接的非易失性NAND存储器。该控制器进一步操作RAM存储器以模拟包含NOR协议命令的NOR存储器装置的操作。
本发明的存储器10或110的用途之一是在图6所示的PC系统300中。存储器装置10或110能够以下列模式起作用。
首先,存储器10或110能眵代替DRAM 340。由于存储器10或110具有RAM部分,因此其能够代替DRAM 340。而且,由于存储器10或110还具有非易失性部分,所以存储器10或110能够存储特定软件到其NAND存储器14中,因此在PC 300启动时,该软件能够被立即通过存储器10或110的控制器12从NAND快闪存储器14中读取并由处理器314来执行,而不用从HDD 326重新获得它。此外,用户经常使用的特定数据或程序,如由操作系统所监视的,也能够从HDD 326预取并存储到存储器10或110的NAND 14或NOR存储器44部分中,从而如由特定用户所察觉到的,在操作期间节省了时间。最后,存储器10或110能够用作用于来自HDD 326的数据/程序的盘高速缓存。
其次,存储器10或110能够代替BIOS 320。由于存储器10或110可以以NOR方式操作,所以存储器10或110能够代替BIOS 320并且可以被用于存储处理器314需要启动PC 300的启动代码。从BIOS 320到南桥318的接口可以是串行的或并行的。此外,存储器10或110能够被分为至少两个部分:一部分用于存储BIOS代码并且另一部分存储用于操作系统的代码。在那种情况下,由于一些操作代码在存储器10或110的非易失性存储器部分中而不是存储在HDD 326上,所以PC 300的启动可以更快速。控制器12能够提供安全访问以授权一个或另一个部分。当以该模式操作时,存储器10或110不需要包括任何RAM 16。存储器10或110能够简化控制器12使其具有少量的NOR存储器44和NAND快闪存储器14,并且不需要包括任何RAM 16或能够以伪NOR模式操作。进一步地,并不是所有的BIOS 320指令都需要存储到NOR存储器44中。BIOS 320的一些指令可以存储到NOR存储器44中且剩余部分存储到NAND快闪存储器14中。
第三,存储器10或110能够代替BIOS 320并且总线350被分成两条总线:从南桥318到BIOS 320的并行或SPI(串行)的第一总线351,以及第二总线352:从南桥318到BIOS 320的工业标准ATA总线,如图7A所示。在该模式中,其是上述第二模式的变形,存储器10或110不需要包括任何RAM 16。除存储和恢复BIOS指令的功能之外,由于存储器10或110还具有ATA总线,所以在PC 300用作不需要HDD 326的薄客户机的应用中其还能够用作“小(lite)”HDD。因此,存储器10或110能够用作BIOS指令以及存储或操作系统或NAND快闪存储器14中的用户数据的存储装置。因此,如这里所使用的,总线350能够表示任何类型的总线或总线组,包括但不限制于PCI、PCI express、USB、ATA等。
第四,存储器10或110能够代替BIOS 320并且总线被重新布线以便存储器10或110插入从南桥318到HDD 326或到USB端口327的信号之间,如图7B所示。由于存储器10或110具有控制器12,因此存在其能够操作的三个模式。第一,在从南桥318引导到HDD 326或USB端口327的总线350上进行通信的情况下,其可以是完全透明的,即好像存储器10或110不存在。第二,存储器10或110能够“智能地”听到南桥318和HDD 326之间的表示命令或数据的信号并且“俘获”或“捕获”任何这样的命令或数据。如果由南桥318请求的数据存储在存储器装置10或110中,则存储器装置10或110能够对其进行响应而不用HDD 326进行响应。因此,通过存储器装置10或110用作HDD 326的高速缓存来改善性能。应当注意,该操作模式不需要任何特殊的软件驱动器。第三,存储器10或110能够“俘获”命令并且在分析后重新传送该命令。最后,在PC 300处于关断模式时,MCU 12和存储器装置10或110可用作HDD 326的主机并控制其操作。在下文中将更详细地讨论该性能。这里再次地,当在该模式下进行操作时,存储器10或110不必包括任何RAM 16。存储器10或110可以简单地是少量的NOR存储器44和NAND快闪存储器14。与第三操作模式相类似,连接南桥318与BIOS 320和硬盘驱动器326的总线350可以包括总线组,例如:用于访问NOR存储器44的并行或SPI总线351和用于访问NAND存储器14的工业标准ATA总线352。如之前所讨论的,当沿该并行或SPI总线351访问BIOS 320时,NOR快闪存储器44能够用于存储BIOS 320的指令。此外,由于NAND快闪存储器14比NOR存储器44便宜,因此NAND快闪存储器14能够被用于存储BIOS 320的指令的其余部分并且在MCU 12中被恢复并沿该并行或SPI总线351来提供。此外,当南桥318试图沿ATA总线352从HDD 326重新获得数据时,NAND快闪存储器14能眵被用于存储来自硬盘驱动器326的高速缓存数据。图7B所示的实例的变形被示于图7C中,其中存储器装置10或110还通过PCI总线,PCI express总线或USB总线连接到北桥芯片316。
第五,由于存储器装置10或110中的MCU 12是处理器,因此其能够被编程以用于除了上述那些之外的其他功能。例如,MCU 12能够被编程使得存储器装置10或110可以用作MP3播放器或视频重放装置并且歌曲/视频存储在NAND存储器14中。操作存储器控制器12的MCU 64所必需的程序代码可以被存储在NOR存储器62中。如果MCU 12不是足够鲁棒性(robust)的或者其需要具有专用的执行MP3/视频功能的硬件,那么专用的DSP处理器或专用的MP3播放器处理器能够被集成在存储器装置10或110中。因此,利用该特征,无论PC 300是否开启,存储器装置10或110都能够重放存储在NAND存储器14上的歌曲或视频。
第六,在存储器装置10或110具有被编程用于MP3或视频重放的其MCU12的情况下或者在存储器装置10或110具有专用的用于MP3或视频重放的DSP处理器的情况下,即使当PC 300被关断时或者处于睡眠模式时,存储器装置10或110也能够访问存储在HDD 326上的附加音频/视频数据。
除了上述第六模式的特征之外,在PC 300具有附加的显示器例如较小的辅助显示器的情况下,在PC 300处于关断或睡眠模式的情况下,存储器装置10或110也能够重新获得存储在HDD 326上的音频-视频数据并将其显示在主显示器332或辅助显示器(未示出)上。此外,在该操作模式中,PC 300的需要功率的唯一“有源”部件将是存储器装置10或110,HDD 326和显示器332或辅助显示器(未示出)。因此,利用较小的辅助显示器,其仅在存储器装置10或110“接通”时在处理器314处于关断模式或睡眠模式时是“有源的”,实现了电能节约。
最后,在第七模式中,在总线350还连接到外部端口的情况下,例如USB端口327,当处理器314接通时,存储器装置10或110能够用作USB集线器或USB通过装置。然而,当处理器314关断时,存储器装置10或110能够用作USB主机,即存储器装置10或110控制并提供电能给所有连接到USB端口327的装置。应当注意,USB总线只是本发明所关注的总线类型的一个实例。如之前所讨论的,总线350可以是任何类型的总线,包含但不限于PCI、PCIexpress、ATA等。在可以连接到USB端口327的装置中包括,向系统300提供备份到HDD 326的文件图像的读卡器;用于附加存储或备份的外部USB存储装置;以及附加装置例如蓝牙通信装置。因此,在该模式中,其可以从HDD326“复制”文件而不用给整个PC 300加电。

Claims (24)

1、一种个人计算机,包括:
主处理器;
连接到所述主处理器的存储器,所述存储器包括:
存储器控制器,其具有用于从所述主处理器接收地址信号和数据信号的第一总线,用于接口连接NAND存储器的第二总线;和用于接口连接RAM存储器的第三总线;以及用于接口连接NOR存储器的第四总线;
连接到所述第二总线的NAND存储器;
连接到所述第三总线的RAM存储器;
连接到所述第四总线的NOR存储器;并且
其中所述存储器控制器响应于在所述第一总线上提供的NOR协议命令和RAM协议命令。
2、如权利要求1所述的计算机,其中所述NOR存储器用于存储用于所述主处理器的可引导代码。
3、如权利要求1所述的计算机,其中所述NAND存储器用于存储用于所述主处理器的可引导代码。
4、如权利要求1所述的计算机,其中所述存储器是单片集成电路管芯。
5、如权利要求1所述的计算机,其中所述存储器控制器是第一集成电路管芯,所述NAND存储器是第二集成电路管芯,所述RAM存储器是第三集成电路管芯,以及所述NOR存储器被集成在所述存储器控制器中。
6、如权利要求5所述的计算机,其中所述第一、第二和第三集成电路管芯被封装在一起。
7、如权利要求1所述的计算机,其中所述存储器控制器是第一集成电路管芯,所述NAND存储器是第二集成电路管芯,所述RAM存储器和所述NOR存储器被集成在所述存储器控制器中。
8、如权利要求7所述的计算机,其中所述第一和第二集成电路管芯被封装在一起。
9、如权利要求1所述的计算机,其中用于存储程序代码的所述存储器被配置为响应于在所述第一总线上的作为NOR地址的第一地址;在所述第一总线上的作为RAM地址的第二地址;以及在所述第一总线上的作为ATA NAND地址的第三地址。
10、如权利要求7所述的计算机,其中用于进一步存储程序代码的所述NOR存储器被配置为启动所述存储器控制器的操作。
11、如权利要求8所述的计算机,其中所述存储器控制器进一步包括:
用于存储来自主机装置的结构参数的寄存器,其用于将来自第一总线的地址分成NOR操作、使用所述NAND存储器的NOR模拟操作、RAM操作和ATANAND操作。
12、如权利要求11所述的计算机,其中用于进一步存储程序代码的所述NOR存储器被配置为使所述RAM存储器用作用于使用所述NAND存储器的NOR模拟操作的高速缓存。
13、一种计算机,包括:
主处理器;
连接到所述主处理器的主存储器;
连接到所述主处理器的辅助存储器,所述辅助存储器包括;
存储器控制器,其具有用于从所述主处理器接收地址信号和数据信号的第一总线,用于接口连接NAND存储器的第二总线;用于接口连接NOR存储器的第三总线;
连接到所述第二总线的NAND存储器;
连接到所述第三总线的NOR存储器;并且
其中所述辅助存储器用作用于启动所述计算机的操作的BIOS指令的存储装置。
14、如权利要求13所述的计算机,其中所述NOR存储器存储用于启动所述存储器控制器的操作的程序代码。
15、如权利要求13所述的计算机,其中所述NAND存储器用于存储用于启动所述计算机的操作的程序代码。
16、如权利要求13所述的计算机,其中所述存储器控制器具有用于从所述主存储器接收ATA可兼容信号的第四总线。
17、如权利要求16所述的计算机,进一步包括连接到所述辅助存储器和所述第五总线的硬盘驱动器,并且其中所述NAND存储器用作所述硬盘驱动器的高速缓存。
18、如权利要求16所述的计算机,其中所述辅助存储器可进一步连接到输入/输出端口。
19、如权利要求18所述的计算机,其中所述输入/输出端口是USB端口。
20、如权利要求16所述的计算机,其中所述辅助存储器可进一步连接到PCI总线或PCI express总线。
21、如权利要求18所述的计算机,其中所述辅助存储器用于将数据传送到所述输入/输出端口/从所述输入/输出端口传送数据以及从所述硬盘驱动器传送数据/将数据传送到所述硬盘驱动器,而不管所述主处理器的电源状态。
22、如权利要求21所述的计算机,其中所述NOR存储器进一步存储用于操作所述存储器控制器作为数字音频/视频重放装置的程序代码。
23、如权利要求22所述的计算机,进一步包括:
连接到所述主处理器的显示装置;
其中所述辅助存储器连接到所述显示装置用于操作所述显示装置。
24、如权利要求17所述的计算机,其中所述辅助存储器在所述主处理器和所述硬盘驱动器之间可以三种模式之一操作:透明的、俘获或重新传送。
CNA2006100643904A 2005-12-28 2006-12-27 硬盘驱动器高速缓存存储器及重放装置 Pending CN101013351A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US75493705P 2005-12-28 2005-12-28
US60/754937 2005-12-28
US11/637419 2006-12-11

Publications (1)

Publication Number Publication Date
CN101013351A true CN101013351A (zh) 2007-08-08

Family

ID=38700898

Family Applications (2)

Application Number Title Priority Date Filing Date
CNA2006100644983A Pending CN101017460A (zh) 2005-12-28 2006-12-27 统一的存储器和控制器
CNA2006100643904A Pending CN101013351A (zh) 2005-12-28 2006-12-27 硬盘驱动器高速缓存存储器及重放装置

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CNA2006100644983A Pending CN101017460A (zh) 2005-12-28 2006-12-27 统一的存储器和控制器

Country Status (5)

Country Link
US (2) US7519754B2 (zh)
JP (1) JP2007183961A (zh)
KR (1) KR20070070122A (zh)
CN (2) CN101017460A (zh)
TW (1) TWI317478B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101788951B (zh) * 2008-08-15 2012-10-10 北京北大众志微系统科技有限责任公司 一种网络计算机的存储方法

Families Citing this family (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11734393B2 (en) 2004-09-20 2023-08-22 Warner Bros. Entertainment Inc. Content distribution with renewable content protection
US20060064386A1 (en) 2004-09-20 2006-03-23 Aaron Marking Media on demand via peering
JP5032172B2 (ja) * 2007-03-28 2012-09-26 株式会社東芝 統合メモリ管理装置及び方法並びにデータ処理システム
US8135900B2 (en) * 2007-03-28 2012-03-13 Kabushiki Kaisha Toshiba Integrated memory management and memory management method
US7958301B2 (en) * 2007-04-10 2011-06-07 Marvell World Trade Ltd. Memory controller and method for memory pages with dynamically configurable bits per cell
US8904098B2 (en) 2007-06-01 2014-12-02 Netlist, Inc. Redundant backup using non-volatile memory
US8874831B2 (en) * 2007-06-01 2014-10-28 Netlist, Inc. Flash-DRAM hybrid memory module
US20080306723A1 (en) * 2007-06-08 2008-12-11 Luca De Ambroggi Emulated Combination Memory Device
US7996600B2 (en) * 2007-08-30 2011-08-09 Unity Semiconductor Corporation Memory emulation in an electronic organizer
US8164656B2 (en) * 2007-08-31 2012-04-24 Unity Semiconductor Corporation Memory emulation in an image capture device
US9201790B2 (en) * 2007-10-09 2015-12-01 Seagate Technology Llc System and method of matching data rates
US8165621B2 (en) * 2007-10-10 2012-04-24 Unity Semiconductor Corporation Memory emulation in a cellular telephone
US7751221B2 (en) * 2007-12-21 2010-07-06 Unity Semiconductor Corporation Media player with non-volatile memory
US7913030B2 (en) * 2007-12-28 2011-03-22 Sandisk Il Ltd. Storage device with transaction logging capability
US7979662B2 (en) * 2007-12-28 2011-07-12 Sandisk Il Ltd. Storage device with transaction indexing capability
KR101553532B1 (ko) 2008-04-17 2015-09-16 삼성전자주식회사 스토리지 장치
US8281169B2 (en) 2008-08-27 2012-10-02 Wireless Silicon Group, Inc. Method and system for power management for a handheld mobile electronic device executing-in-place an application kernel from execute-in-place non-volatile memory (XIP NVM)
US8156320B2 (en) * 2008-08-27 2012-04-10 Wireless Silicon Group, Llc Method and apparatus for fast booting a portable computing device allowing for immediate operation
US8250285B2 (en) * 2008-09-10 2012-08-21 Infinte Mormories Ltd. Non-volatile dual memory die for data storage devices
GB2478434B (en) * 2008-09-15 2011-11-09 Hewlett Packard Development Co Method and apparatus to manage non-volatile disk cache
US8149622B2 (en) * 2009-06-30 2012-04-03 Aplus Flash Technology, Inc. Memory system having NAND-based NOR and NAND flashes and SRAM integrated in one chip for hybrid data, code and cache storage
KR20120050449A (ko) * 2009-07-17 2012-05-18 세큐어 콘텐트 스토리지 어소시에이션, 엘엘씨 단순 비자동 피어링 미디어 복제 감지
CN101702139B (zh) * 2009-11-24 2011-11-30 中兴通讯股份有限公司 一种访问Nand闪存数据的方法和装置
CN102122267A (zh) * 2010-01-07 2011-07-13 上海华虹集成电路有限责任公司 一种可同时进行数据传输及FTL管理的多通道NANDflash控制器
JP2011197819A (ja) * 2010-03-17 2011-10-06 Toshiba Corp 半導体装置
CN102591816A (zh) * 2011-01-17 2012-07-18 上海华虹集成电路有限责任公司 一种多通道Nandflash存储系统
CN108549609B (zh) * 2011-09-30 2022-06-21 英特尔公司 作为传统大容量存储设备的替代的非易失性随机存取存储器(nvram)
JP5532059B2 (ja) * 2012-01-27 2014-06-25 株式会社日立製作所 半導体装置
US9128822B2 (en) * 2012-06-22 2015-09-08 Winbond Electronics Corporation On-chip bad block management for NAND flash memory
US9330007B2 (en) 2012-11-30 2016-05-03 Dell Products, Lp Systems and methods for dynamic optimization of flash cache in storage devices
CN103871447B (zh) * 2012-12-14 2017-03-01 华邦电子股份有限公司 与非门快闪存储器阵列及芯片及其存取、读取及管理方法
US9324450B2 (en) 2013-03-13 2016-04-26 Winbond Electronics Corporation NAND flash memory
EP2972888B1 (en) 2013-03-14 2019-02-06 Micron Technology, INC. Memory systems and methods including training,data organizing,and/or shadowing
US9449032B2 (en) * 2013-04-22 2016-09-20 Sap Se Multi-buffering system supporting read/write access to different data source type
US9436600B2 (en) 2013-06-11 2016-09-06 Svic No. 28 New Technology Business Investment L.L.P. Non-volatile memory storage for multi-channel memory system
US10185515B2 (en) * 2013-09-03 2019-01-22 Qualcomm Incorporated Unified memory controller for heterogeneous memory on a multi-chip package
US9442798B2 (en) 2014-07-31 2016-09-13 Winbond Electronics Corporation NAND flash memory having an enhanced buffer read capability and method of operation thereof
US9367392B2 (en) 2014-08-01 2016-06-14 Winbond Electronics Corporation NAND flash memory having internal ECC processing and method of operation thereof
CN104461959B (zh) * 2014-11-05 2017-04-19 福州瑞芯微电子股份有限公司 区分NOR Flash与NAND Flash的方法和装置
US10866737B2 (en) * 2015-09-17 2020-12-15 Intel Corporation Apparatus, method and system to store information for a solid state drive
CN105512054B (zh) * 2015-12-09 2018-11-09 上海兆芯集成电路有限公司 主机接口控制器以及储存装置控制方法
US10481799B2 (en) * 2016-03-25 2019-11-19 Samsung Electronics Co., Ltd. Data storage device and method including receiving an external multi-access command and generating first and second access commands for first and second nonvolatile memories
US10067877B1 (en) * 2016-06-30 2018-09-04 EMC IP Holding Company LLC Method, apparatus and computer program product for use in managing multi-cache data storage systems
US11960757B2 (en) 2021-10-04 2024-04-16 Samsung Electronics Co., Ltd. Flash translation layer with rewind
CN114049905B (zh) * 2021-12-16 2024-04-09 西安紫光国芯半导体有限公司 非易失三维存储单元、存储方法、芯片组件和电子设备
TWI814647B (zh) * 2022-11-24 2023-09-01 慧榮科技股份有限公司 執行主機命令的方法及電腦程式產品及裝置

Family Cites Families (81)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4534011A (en) * 1982-02-02 1985-08-06 International Business Machines Corporation Peripheral attachment interface for I/O controller having cycle steal and off-line modes
JPS61114631A (ja) * 1984-11-07 1986-06-02 インタ−ナショナル ビジネス マシ−ンズ コ−ポレ−ション 通信アダプタ
US4860192A (en) * 1985-02-22 1989-08-22 Intergraph Corporation Quadword boundary cache system
US4837677A (en) * 1985-06-14 1989-06-06 International Business Machines Corporation Multiple port service expansion adapter for a communications controller
US5276807A (en) * 1987-04-13 1994-01-04 Emulex Corporation Bus interface synchronization circuitry for reducing time between successive data transmission in a system using an asynchronous handshaking
US5134706A (en) * 1987-08-07 1992-07-28 Bull Hn Information Systems Inc. Bus interface interrupt apparatus
US4974153A (en) * 1987-09-04 1990-11-27 Digital Equipment Corporation Repeater interlock scheme for transactions between two buses including transaction and interlock buffers
US4955024A (en) * 1987-09-14 1990-09-04 Visual Information Technologies, Inc. High speed image processing computer with error correction and logging
US4965717A (en) * 1988-12-09 1990-10-23 Tandem Computers Incorporated Multiple processor system having shared memory with private-write capability
US5189665A (en) * 1989-03-30 1993-02-23 Texas Instruments Incorporated Programmable configurable digital crossbar switch
US5805792A (en) * 1989-07-31 1998-09-08 Texas Instruments Incorporated Emulation devices, systems, and methods
US5218686A (en) * 1989-11-03 1993-06-08 Compaq Computer Corporation Combined synchronous and asynchronous memory controller
GB9019022D0 (en) * 1990-08-31 1990-10-17 Ncr Co Work station or similar data processing system including interfacing means to microchannel means
US5210530A (en) * 1991-01-04 1993-05-11 Codex Corporation Network management interface with internal dsd
KR960001273B1 (ko) * 1991-04-30 1996-01-25 가부시키가이샤 도시바 단일칩 마이크로컴퓨터
US5778418A (en) 1991-09-27 1998-07-07 Sandisk Corporation Mass computer storage system having both solid state and rotating disk types of memory
US5341487A (en) * 1991-12-20 1994-08-23 International Business Machines Corp. Personal computer having memory system with write-through cache and pipelined snoop cycles
JPH0727494B2 (ja) * 1992-01-02 1995-03-29 インターナショナル・ビジネス・マシーンズ・コーポレイション キャッシュ・スヌープ/データ無効化機能を有するコンピュータ・システム
US5379415A (en) * 1992-09-29 1995-01-03 Zitel Corporation Fault tolerant memory system
JP2541767B2 (ja) * 1992-11-12 1996-10-09 インターナショナル・ビジネス・マシーンズ・コーポレイション スマ―ト・バス制御ユニット
US5404485A (en) 1993-03-08 1995-04-04 M-Systems Flash Disk Pioneers Ltd. Flash file system
US5561819A (en) * 1993-10-29 1996-10-01 Advanced Micro Devices Computer system selecting byte lane for a peripheral device during I/O addressing technique of disabling non-participating peripherals by driving an address within a range on the local bus in a DMA controller
US5446869A (en) * 1993-12-30 1995-08-29 International Business Machines Corporation Configuration and RAM/ROM control of PCI extension card residing on MCA adapter card
US5535340A (en) * 1994-05-20 1996-07-09 Intel Corporation Method and apparatus for maintaining transaction ordering and supporting deferred replies in a bus bridge
RU2176814C2 (ru) * 1995-06-07 2001-12-10 Самсунг Электроникс Ко., Лтд. Схема уменьшения задержки при передаче буферизованных данных между двумя взаимно асинхронными шинами
US5721839A (en) * 1995-10-13 1998-02-24 Compaq Computer Corporation Apparatus and method for synchronously providing a fullness indication of a dual ported buffer situated between two asynchronous buses
US5844856A (en) * 1996-06-19 1998-12-01 Cirrus Logic, Inc. Dual port memories and systems and methods using the same
US5729760A (en) * 1996-06-21 1998-03-17 Intel Corporation System for providing first type access to register if processor in first mode and second type access to register if processor not in first mode
US5805835A (en) * 1996-07-15 1998-09-08 Micron Electronics, Inc. Parallel architecture computer system and method
US5999997A (en) * 1996-07-26 1999-12-07 Compaq Computer Corporation Two computers cooperating via interconnected busses
GB9622687D0 (en) * 1996-10-31 1997-01-08 Sgs Thomson Microelectronics An integrated circuit with tap controller
JP3607439B2 (ja) * 1996-11-11 2005-01-05 株式会社日立製作所 半導体集積回路装置
US6098110A (en) * 1996-12-30 2000-08-01 Compaq Computer Corporation Network switch with a multiple bus structure and a bridge interface for transferring network data between different buses
US5926629A (en) * 1997-02-18 1999-07-20 Advanced Micro Devices, Inc. Continuously operating interconnection bus
US5941968A (en) * 1997-04-14 1999-08-24 Advanced Micro Devices, Inc. Computer system for concurrent data transferring between graphic controller and unified system memory and between CPU and expansion bus device
US5990914A (en) * 1997-09-09 1999-11-23 Compaq Computer Corporation Generating an error signal when accessing an invalid memory page
US5905509A (en) * 1997-09-30 1999-05-18 Compaq Computer Corp. Accelerated Graphics Port two level Gart cache having distributed first level caches
US5937425A (en) 1997-10-16 1999-08-10 M-Systems Flash Disk Pioneers Ltd. Flash file system optimized for page-mode flash technologies
US6029253A (en) * 1997-10-30 2000-02-22 Micron Electronics, Inc. Method for synchronizing data with a bi-directional buffer
JPH11238030A (ja) * 1998-02-20 1999-08-31 Mitsubishi Electric Corp Pci−pciブリッジおよびそのための先入れ先出しメモリ
US6199167B1 (en) * 1998-03-25 2001-03-06 Compaq Computer Corporation Computer architecture with password-checking bus bridge
US6163815A (en) * 1998-05-27 2000-12-19 International Business Machines Corporation Dynamic disablement of a transaction ordering in response to an error
US6415353B1 (en) * 1998-10-01 2002-07-02 Monolithic System Technology, Inc. Read/write buffers for complete hiding of the refresh of a semiconductor memory and method of operating same
US6199137B1 (en) * 1999-01-05 2001-03-06 Lucent Technolgies, Inc. Method and device for controlling data flow through an IO controller
US6330635B1 (en) 1999-04-16 2001-12-11 Intel Corporation Multiple user interfaces for an integrated flash device
US6658006B1 (en) * 1999-06-03 2003-12-02 Fujitsu Network Communications, Inc. System and method for communicating data using modified header bits to identify a port
EP1059586B1 (en) * 1999-06-09 2004-09-08 Texas Instruments Incorporated Shared memory with programmable size
EP1059587B1 (en) * 1999-06-09 2007-04-18 Texas Instruments Incorporated Host access to shared memory with a high priority mode
US6363446B1 (en) * 1999-06-12 2002-03-26 Micron Technology, Inc. Method for selectively encoding bus grant lines to reduce I/O pin requirements
US6421765B1 (en) 1999-06-30 2002-07-16 Intel Corporation Method and apparatus for selecting functional space in a low pin count memory device
KR100383774B1 (ko) 2000-01-26 2003-05-12 삼성전자주식회사 공통 인터페이스 방식의 메모리 장치들을 구비한 시스템
US6502146B1 (en) * 2000-03-29 2002-12-31 Intel Corporation Apparatus and method for dedicated interconnection over a shared external bus
US6934785B2 (en) * 2000-12-22 2005-08-23 Micron Technology, Inc. High speed interface with looped bus
US6510488B2 (en) 2001-02-05 2003-01-21 M-Systems Flash Disk Pioneers Ltd. Method for fast wake-up of a flash memory system
US6882082B2 (en) * 2001-03-13 2005-04-19 Micron Technology, Inc. Memory repeater
US20020138702A1 (en) * 2001-03-26 2002-09-26 Moshe Gefen Using non-executable memory as executable memory
US6813673B2 (en) * 2001-04-30 2004-11-02 Advanced Micro Devices, Inc. Bus arbitrator supporting multiple isochronous streams in a split transactional unidirectional bus architecture and method of operation
US6868460B1 (en) * 2001-06-05 2005-03-15 Silicon Motion, Inc. Apparatus for CD with independent audio functionality
JP4049297B2 (ja) 2001-06-11 2008-02-20 株式会社ルネサステクノロジ 半導体記憶装置
US7386653B2 (en) * 2001-08-06 2008-06-10 Sandisk Il Ltd Flash memory arrangement
KR100393619B1 (ko) 2001-09-07 2003-08-02 삼성전자주식회사 휴대 단말기의 메모리 장치 및 그 제어방법
US6636935B1 (en) * 2001-09-10 2003-10-21 Rambus Inc. Techniques for increasing bandwidth in port-per-module memory systems having mismatched memory modules
US6633944B1 (en) * 2001-10-31 2003-10-14 Lsi Logic Corporation AHB segmentation bridge between busses having different native data widths
EP1473628B1 (en) 2002-01-31 2010-04-14 Panasonic Corporation Information processing apparatus, memory management apparatus, memory management method, and information processing method
US6683817B2 (en) 2002-02-21 2004-01-27 Qualcomm, Incorporated Direct memory swapping between NAND flash and SRAM with error correction coding
US20030206442A1 (en) 2002-05-02 2003-11-06 Jerry Tang Flash memory bridiging device, method and application system
FI20021620A (fi) 2002-09-10 2004-03-11 Nokia Corp Muistirakenne, järjestelmä ja elektroniikkalaite sekä menetelmä muistipiirin yhteydessä
JP4499982B2 (ja) 2002-09-11 2010-07-14 株式会社日立製作所 メモリシステム
JP2004118544A (ja) * 2002-09-26 2004-04-15 Renesas Technology Corp メモリシステム
US7613880B2 (en) 2002-11-28 2009-11-03 Renesas Technology Corp. Memory module, memory system, and information device
JP2005010942A (ja) * 2003-06-17 2005-01-13 Matsushita Electric Ind Co Ltd ブートコードが格納されるシーケンシャルアクセス・メモリデバイスを備えた装置及び前記装置の起動方法
US7752380B2 (en) * 2003-07-31 2010-07-06 Sandisk Il Ltd SDRAM memory device with an embedded NAND flash controller
JP4606009B2 (ja) * 2003-10-20 2011-01-05 三洋電機株式会社 プログラム処理装置
JP2005190312A (ja) * 2003-12-26 2005-07-14 Toshiba Corp マルチチップパッケージ型メモリシステムおよびコンピュータシステム
JP2005157528A (ja) * 2003-11-21 2005-06-16 Fuji Xerox Co Ltd メモリ装置
US7136973B2 (en) 2004-02-04 2006-11-14 Sandisk Corporation Dual media storage device
US7127549B2 (en) 2004-02-04 2006-10-24 Sandisk Corporation Disk acceleration using first and second storage devices
WO2005076137A1 (en) 2004-02-05 2005-08-18 Research In Motion Limited Memory controller interface
US20050204091A1 (en) 2004-03-11 2005-09-15 Kilbuck Kevin M. Non-volatile memory with synchronous DRAM interface
WO2006026645A2 (en) 2004-08-30 2006-03-09 Silicon Storage Technology, Inc. Systems and methods for providing nonvolatile memory management in wireless phones
US7334107B2 (en) * 2004-09-30 2008-02-19 Intel Corporation Caching support for direct memory access address translation

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101788951B (zh) * 2008-08-15 2012-10-10 北京北大众志微系统科技有限责任公司 一种网络计算机的存储方法

Also Published As

Publication number Publication date
CN101017460A (zh) 2007-08-15
TWI317478B (en) 2009-11-21
US7519754B2 (en) 2009-04-14
US20090150588A1 (en) 2009-06-11
US20070233933A1 (en) 2007-10-04
KR20070070122A (ko) 2007-07-03
TW200745851A (en) 2007-12-16
JP2007183961A (ja) 2007-07-19

Similar Documents

Publication Publication Date Title
CN101013351A (zh) 硬盘驱动器高速缓存存储器及重放装置
KR100797325B1 (ko) 통합 메모리 및 컨트롤러
KR100448905B1 (ko) 낸드플래쉬메모리를 시스템구동 및 저장용으로 사용하는장치
US20090157946A1 (en) Memory having improved read capability
KR970008188B1 (ko) 플래시메모리의 제어방법 및 그것을 사용한 정보처리장치
TWI261254B (en) Memory card and semiconductor device
US5787493A (en) Control method and apparatus for direct execution of a program on an external apparatus using a randomly accessible and rewritable memory
US7032158B2 (en) System and method for recognizing and configuring devices embedded on memory modules
JP4524309B2 (ja) フラッシュメモリ用のメモリコントローラ
US6073206A (en) Method for flashing ESCD and variables into a ROM
JP5129484B2 (ja) デュアルメディアストレージデバイス
KR100610647B1 (ko) 직접실행제어 기능과 스토리지 기능이 복합된 대용량저장장치
JP5495074B2 (ja) 論理ユニット動作
US4984149A (en) Memory access control apparatus
JP2001166993A (ja) 記憶制御装置およびキャッシュメモリの制御方法
JP2003015929A (ja) 不揮発性メモリの制御方法
CN105934747B (zh) 混合内存模块以及操作混合内存模块的系统和方法
CN2603974Y (zh) 磁盘高速缓存装置
JP2007213179A (ja) 不揮発性半導体記憶装置
JP2006146817A (ja) メモリ制御システム及びメモリ制御装置
JP2923273B2 (ja) データ処理システム
JP2791319B2 (ja) データ処理装置
JP4724289B2 (ja) データ処理装置およびデータ処理装置のメモリアクセス制御方法
JP2008097543A (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
ASS Succession or assignment of patent right

Owner name: GREENLINE SYSTEMS INC.

Free format text: FORMER OWNER: SILICON STORAGE TECHNOLOGY, INC.

Effective date: 20110412

Owner name: GREENLINE INC.

Free format text: FORMER OWNER: GREENLINE SYSTEMS INC.

Effective date: 20110412

C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20110412

Address after: California, USA

Applicant after: GREENLIANT LLC

Address before: California, USA

Applicant before: Green Ryan Te Systems Ltd.

Effective date of registration: 20110412

Address after: California, USA

Applicant after: Green Ryan Te Systems Ltd.

Address before: California, USA

Applicant before: Silicon Storage Technology, Inc.

C12 Rejection of a patent application after its publication
RJ01 Rejection of invention patent application after publication

Open date: 20070808