通过易失性存储器接口访问非易失性存储器的方法

文档序号:6611211阅读:188来源:国知局
专利名称:通过易失性存储器接口访问非易失性存储器的方法
技术领域
本发明总体上涉及在计算机系统中的访问存储器(存取存储器)。
背景技术
许多现代的电子器件例如移动电话、PDA、便携式音乐播放器、 电器等通常结合嵌入式计算机系统。嵌入式计算机系统通常包括计 算机处理器(称作主机)、非易失性存储器(例如快闪存储器和/或 ROM存储器)以及易失性存储器诸如动态随机存取存储器
(DRAM)。主才几可以包^"中央处理器(CPU)、凄t字式信号处理器 (DSP)、微控制器单元(MCU)或直接存储器存取(DMA)数据 传输装置。嵌入式系统还可以包括非易失性存储器控制器,该非易 失性存储器控制器可以用来控制和/或访问非易失性存储器。
在嵌入式系统中,通常可以比非易失性存储器更快速地存取易 失性存储器。因此,例如,通过主机执行的代码可以存储于易失性 存储器中并通过主机从该易失性存储器存取。然而,由于易失性存 储器通常需要电源来保持其中存储的数据,因此当嵌入式系统被断 电时,易失性存储器通常^皮擦除。因此,当嵌入式系统断电时,通 常不需要电源来维持存储数据的非易失性存储器可以用来存储由 主机执行的代码。当对嵌入式系统加电时(例如,当嵌入式系统进 入复位状态时),通过主才几系统4吏用的代码可以;陂载入易失性存^f诸 器中并通过主机由易失性存储器执行。将存储于非易失性存储器中 的代码载入易失性存储器中并执行来自易失性存储器代码的过程 可以称作代码映射(code shadowing )。
为了维持嵌入式系统中存取数据的灵活性,可以期望在主机、 易失性存储器和非易失性存储器之间以各种方式来传输数据。例 如,可以期望在易失性存储器与主机之间、非易失性存储器与主机 之间、和易失性存储器与非易失性存储器之间执行数据传送。当维 持嵌入式系统中存取数据的灵活性时,也可以期望降低主机和存储 系统的组件之间的接口的成本和复杂性。
因此,需要用于嵌入式系统中存取存储器的改进的系统和方法。

发明内容
本发明的实施方式提供了用于经由易失性存储装置访问非易 失性存储装置中的数据的方法、装置和系统。在一个实施方式中, 该方法包括在易失性存储装置的地址空间中配置覆盖窗的大小和 基地址。该覆盖窗包括一系列存储地址。该方法还包括经由该易失 性存储装置的易失性存储器接口接收访问命令,如果访问命令的地 址在覆盖窗之内,则使用访问命令经由易失性存储装置的非易失性 存储器接口访问非易失性存储装置。


为了使本发明的上述特征可以更详细地被理解,将结合实施例 详细描述本发明以上扭克括的特征,其中一些实施方式在附图中纟会 出。然而,应当注意,附图4又描述本发明典型的实施例,因此并不 能认为限制其范围,本发明可以允许其它同等有效的实施例。
为了可以更详细地理解本发明的上述特4正,将结合实施例详细 描述本发明以上概括的特征,其中一些实施方式在附图中给出。然 而,应当注意,附图仅描述了本发明的典型实施例,因此并不能认 为限制其范围,本发明可以允许其它同等效果的实施例。
图1A-图1C是示出了根据本发明实施例的嵌入式系统的方框
图2A-图2B是示出了根据本发明实施例的用于配置覆盖窗的 处理的流^f呈图3A-图3D是示出了根据本发明一个实施例的覆盖窗配置的 外》见的才匡图4是示出了根据本发明一个实施例所发送的用于配置覆盖窗 的命令的时序图5A-图5B是示出了根据本发明实施例经由覆盖窗访问数据 和发送命令的处理的流程图6-图7是示出了根据本发明实施例的覆盖窗中的控制寄存器 和緩沖器的框图8是示出了根据本发明一个实施例的向op码寄存器发送的 命令的框图9A-图9D是示出了#4居本发明的实施例的嵌入式系统中的 数据传送的框图lOA-图IOB是示出了根据本发明实施例用于在主机和非易 失性存储器之间寺丸行DMA传送处理的流程图11是示出了根据本发明一个实施例的经由覆盖窗访问的镜 像控制寄存器的框图;以及
图12是示出了根据本发明一个实施例用于镜像控制寄存器数 才居的处理的流禾呈图。
具体实施例方式
本发明的实施方式提供了用于经由易失性存储装置访问非易 失性存储装置中的数据的方法、装置和系统。在一个实施方式中, 该方法包括在易失性存储装置的地址空间中配置覆盖窗的大小和 基地址。该覆盖窗包括一系列存储地址。该方法还包括经由该易失 性存储装置的易失性存储器接口接收访问命令,如果访问命令的地址在覆盖窗之内,则使用访问命令经由易失性存储装置的非易失性 存储器接口访问非易失性存储装置。
"^式系统
图1A是示出了根据本发明一个实施例的嵌入式系统100的方 框图。如所示出的,嵌入式系统100可以包括主机102、易失性存 储器104、非易失性存储器控制器106以及非易失性存储器108。
在一个实施例中,主机102可以包括-控制电路132和用于与易 失性存储器104的易失性存储器接口 112通信的易失性存储器接口 110。在一个实施例中,易失性存储器接口 112可以包括一接口,该 接口符合电子设备工程联合委员会(JEDEC)低功率双倍数据传输 率(LPDDR)同步动态随机存取存储器(SDRAM)规定。可选地, 可以使用任何其它合适的易失性存储器接口 (例如,使用DRAM 接口控制信号诸如写使能(WE)、行存取选通脉冲(RAS)、列存 取选通脉冲(CAS)以及芯片选择(CS))。可以使用控制电路,例 如,来执行计算机命令和处理由易失性存储器104或另外的存储位 置(例如,》兹盘驱动器或其它存储装置)接收的数据。在某些情况 下,主才几102还可以包括附加的(辅助)电路,例如,用于接收用 户输入的输入/输出(I/O)接口和至其它嵌入式系统组件(诸如其 他的存储器组件、》兹盘驱动器和其它装置)的其他4妄口。并且,如 下面所描述的,主机102可以使用易失性存储器接口 112,来提供 命令和信息并用来接收来自易失性存储器104、非易失性存储器控 制器106、和/或非易失性存储器108的信息。
在一个实施例中,易失性存々者器104可以包4舌用于与主才几102 通信的易失性存储器接口 112,和用于与非易失性存储器控制器106 通信的非易失性存储器接口 120。易失性存储器104相对于主机102 和非易失性存^f渚器控制器106可以用作乂人属装置(slave)(例如,
易失性存储器可以通过该接口的其它组件来控制)。可选地,易失
性存储器104相对于非易失性存储器控制器106可以是主存储器 (master )。非易失性存储器接口 112可以包括用来访问非易失性存 储器108的任何接口,包括,例如写使能(WE)、输出使能(OE) 和芯片选择(CS)控制信号。
易失性存储器104还可以包括用于处理通过易失性存储器4妄口 112和/或非易失性存储器接口 120接收的命令的易失性存储器控制 电路114。易失性存储器104可以进一步包括用于在易失性存储器 104中存储数据的易失性存储器阵列116和用于在主才几102、易失 性存储器104、非易失性存储器控制器106、和/或非易失性存储器 108之间传输数据和/或命令的一个或多个緩沖器118。在一个实施 例中,緩沖器118可以是动态RAM (DRAM)存储器。可选地, 緩沖器118可以是静态Ram ( SRAM)存储器。易失性存储器104 还可以包括用于与非易失性存储器控制器106通信的非易失性存储 器接口 120。
在本发明的一个实施例中,非易失性存储器控制器106可以包 括用于与易失性存储器104通信的第 一非易失性存储器接口 122和 用于与非易失性存储器108通信的第二非易失性存储器接口 126。 非易失性存储器控制器106还可以包括用于控制易失性存储器104、 非易失性存储器控制器106和非易失性存储器之间数据传输的非易 失性存储器控制电路124。可以通过非易失性存储器接口 128访问 非易失性存储器108。可以将非易失性存储器108中的数据存储在 非易失性存储器阵列130中。
虽然上面参照单个易失性存储器104和非易失性存储器控制器 106进行了描述,但本文中所描述的实施例也可以用于易失性存储 器134,其包括非易失性存储器控制电路124,并通过非易失性存 储器接口 128访问非易失性存储器108 (如图1B所示)。图1C是示出了根据本发明一个实施例的易失性存储器104和 非易失性存储器控制器106的其他细节的框图。如所示出的,易失 性存储器104可以包括命令和地址译码器电路164 (例如,作为易 失性存储器控制电路114的一部分)。当命令和地址译码器电路164 接收来自主机102的命令时,其中主机102访问易失性存储器阵列 116的库136中的一个中的数据,数据可以通过主机的易失性存储 器阵列116的易失性存取控制160来进行访问。易失性存储器104 还可以提供如下面更详细描述的用于控制易失性存储器104操作的 模式寄存器(mode register ) 170、用于控制覆盖窗的覆盖窗控制寄 存器138、以及用于在嵌入式系统100的组件之间传输数据的覆盖 窗緩沖器146。
在本发明的一个实施例中,易失性存储器104可以进一步^是供 用于控制在非易失性存储器108、非易失性存储器控制器106和易 失性存储器104之间的DMA传输的中部直接存储器存取(iDMA ) 控制寄存器140。如下面所描述的,修改易失性存储器104中的 iDMA控制寄存器设置可以使易失性存储器104向非易失性存储器 控制器106发送命令,这引起在非易失性存储器控制器106的iDMA 控制器150的iDMA控制寄存器152中相应的变化。这样的变化可 以,例如导致向iDMA控制器150发送命令,这导致例如在易失性 存储器104、非易失性存储器控制器106和非易失性存储器108之 间执4亍DMA传输。
在一个实施例中,例如,DMA传送(transfer)可以-使用非易 失性存储器控制器106中的緩冲器154,来临时保持在非易失性存 储器108和易失性存储器104之间传送的数据。关于易失性存储器 104, DMA传送可以使用iDMA易失性存储器访问控制162来访问 易失性存储器阵列116 (例如,读取或写用于DMA传送的数据)。 来自易失性存^f诸器阵列116的^t据可以传送至iDMA纟爰沖器144或
者从iDMA緩沖器144传出,iDMA緩冲器144又可以用于通过易 失性存储器104的非易失性存储器接口 120来传送数据。iDMA緩 冲器控制器148可以用来控制易失性存储器104的iDMA易失性存 储器访问控制162、 iDMA緩冲器144和非易失性存储器接口 120 之间的数据传送。
在一个实施例中,易失性存储器104还可以包括通用串行总线 (USB)/高级技术配件(ATA)寄存器142,其可以用来控制非易失 性存储器控制器106中的USB/ATA功能性。例如,如下面所描述 的,当改变易失性存储器104中的USB/ATA寄存器时,易失性存 储器104可以自动地相应改变非易失性存储器控制器106的非易失 性存储器控制电路124中的USB/ATA控制寄存器158。因此,主机 102可以能够通过易失性存储器104来访问非易失性存储器控制器 106的USB/ATA功能性。
配置用于存:W^据的泉蓋窗
在本发明的一个实施例中,用于易失性存储器104的易失性存 4诸器地址空间的一部分可以分配给覆盖窗。图3A是示出了4艮据本 发明一个实施例占用(occupy)易失性存储器地址空间302的一部 分的覆盖窗304的方框图。易失性存储器104的易失性存储器地址 空间302通常包括通过易失性存储器104的易失性存储器接口 112 访问的一系列地址。例如,如果易失性存储器接口 112提供总共18 个地址位(例如,两个库地址位BA0和BA1和16个地址位A[15:0]), 那么易失性存储器104的地址空间302可以包括262,144个地址(2 的18次幂),其允许可以访问易失性存储器104中的高达256k的 凄t才居的4亍项(row entries )(其中,每一4亍项对应于一乡合定的;也址)。
在某些情况下,通过经由易失性存储器接口 112访问覆盖窗304 中的地址,主机102能够访问非易失性存储器108以及覆盖窗控制
寄存器138、 iDAM控制寄存器140和USB/ATA控制寄存器142中 的数据。因此,覆盖窗304可以允许通过易失性存储器接口 112访 问不同于易失性存储器阵列116的寄存器和存储器阵列。如果通过 易失性存储器接口 112接收的访问命令(例如,读取或写命令)没 有落在由覆盖窗指定的地址的范围中,那么访问命令可以用于访问 易失性存储器阵列116。如果接收的地址落在覆盖窗304中,那么 访问命令可以用来访问其它数据(例如,在易失性存储器104的覆
盖窗緩沖器146或控制寄存器138、 140、 142中的数据)。
如上所述,覆盖窗304可以占据(occupy )易失性存4诸器地址 空间302的一部分。在一个实施例中,例如,作为经由易失性存^f诸 器接口 112接收的命令的结果,覆盖窗304可以是被使能或被禁止 的。而且,在某些情况下,4皮覆盖窗304占据的易失性存储器地址 可以是可配置的(configurable )。因此,例如,覆盖窗304的基地 址306以及覆盖窗304的大小308 (示于图3A中)是通过》务改易 失性存储器104中的控制寄存器的设置可配置的。
占据易失性存储器地址空间302的覆盖窗304通常用于访问易 失性存储器阵列116,由覆盖窗304写地址的部分易失性存储器阵 列116可以是不能访问的(例如,访问这些地址可以修改易失性存 储器阵列116外部的数据)。然而,通过移动覆盖窗304,易失性存 储器阵列116的不同部分(part)可以被"暴露"(例如,经由易失 性存储器接口 112可以是可访问的)或者"掩盖(covered up )"(例 如,对这些地址的访问可以经由覆盖窗304^皮重定向(redirect ))。 而且,覆盖窗304是被禁止时,通过易失性存储器地址空间302可 以访问整个易失性存储器阵列116。并且,在一个实施例中,易失 性存储器地址空间302可以比易失性存储器阵列116中的数据量要 大(例如,可以提供比数据更多的数据地址),这允许覆盖窗304200710136535.1
说明书第10/32页
位于易失性存储器地址空间302的一部分,其并不覆盖易失性存储 器阵列116的数据地址。
图2A是示出了根据本发明一个实施例用于配置覆盖窗304的 处理200的流程图。处理200可以以步骤202开始,其中使能覆盖 窗304。在步骤204,可以设置用于覆盖窗304的基地址306。基地 址306可以指示覆盖窗304开始处的易失性存储器地址。在一个实 施例中,可以限制基地址306,使得选择的基地址306仅落在页面 大小边界。可选地,对于基地址306,可以使用任何对准(alignment) (例如,字节对准)。在步骤206,可以i殳置覆盖窗304的大小308。 覆盖窗304的大小308可以,例如,表示以基地址306开始的覆盖 窗304占据的易失性存储器地址的范围。在一个实施例中,可以加 倍设定的大小308的值,以确定实际大小(例如,覆盖窗304的实 际大小可以是以1024 ( 1K)或2048 ( 2K )乘以i殳定的大小)增加 的供给大小,以使大小308分配用于覆盖窗304的存储地址的块的 整数。在步骤208,覆盖窗304可以用于数据访问(例如,用于访 问覆盖窗緩冲器146和/或控制寄存器138、 140、 142)。
通常,图2A中示出的处理200可以使用本领域普通技术人员 已知的任何方法来实施。例如,每一步骤可以通过向易失性存储器 104发送命令而实施。可选地,对于每一覆盖窗属性(例如,覆盖 窗是否是激活的,基地址306和/或大小),可以纟是供可变的默认i殳 置和/或永久预置i殳置。
图2B是示出了用于配置根据本发明一个实施例的覆盖窗304 的示例性处理210的流禾呈图。处理210可以以步艰《212开始,其中 覆盖窗使用模式寄存器组(MRS )命令通过在易失性存储器104的 模式寄存器170中设置覆盖窗使能(OWE)位而激活。然后,在步 骤214,用于覆盖窗304的基地址306可以使用MRS命令设置。
22
在一个实施例中,如图3B所示,在设置覆盖窗304的基地址 306后,易失性存储器104可以在先前设置的基地址306的开始处 自动地分配覆盖窗304的默认地址空间310。覆盖窗304的自动分 配的地址空间310可以用来访问覆盖窗控制寄存器138和其它控制 寄存器140、 142。因为可以使用通过易失性存储器接口 112向在易 失性存储器104中的地址发送的访问命令(例如,读取和写命令) 来访问控制寄存器138、 140、 142,因此控制寄存器138、 140、 142 可以称作存储器-映射寄存器。因此,通过从易失性存储器地址空间 302中的地址进行读耳又或向易失性存储器地址空间302中的地址进 行写(其中易失性存储器地址空间302对应于覆盖窗304的自动分 配的地址空间310 ),对应于访问地址的覆盖窗寄存器可以^皮写或读 取。
在步骤218中,可以通过易失性存储器接口 112向存储器映射 的覆盖窗控制寄存器138进行写,而设定覆盖窗304的大小308。 通过向覆盖窗控制寄存器138进行写而设定的大小308可以表明从 先前i殳定的基地址306开始的覆盖窗304的大小。可选地,大小308 可以指定除了并开始于自动分覆盖窗地址空间310的末端(end) 的覆盖窗304的大小。提供用于覆盖窗304的大小308可以包括緩 冲地址空间330 (如图3B所示),该地址空间被映射到覆盖窗緩沖 器146并用于下述的翁:据访问。当已经如在步骤212、 214、 216和 218中所述的设定了覆盖窗304之后,在步骤208中,覆盖窗可以 用于凄t据访问。例如,为覆盖窗304分配的空间可以用于向易失性 存储器104、非易失性存储器控制器106,以及非易失性存储器 108(下文将详细描述)发送命令。
图3C是描述根据本发明一个实施例的用于激活(enable )覆盖 窗304和设定该覆盖窗基地址306的一个示例性MRS命令结构的 框图。如图所示,通过易失性存储器接口 112发给易失性存储器104
说明书第12/32页
的命令可以包4舌命令部分312和地址部分314,该地址部分314包 括标识将净皮访问的易失性存储器阵列116的库(bank) 136的库地 址位(bank address bit) B AO, BA1,以及指示在将被访问的指定库 136中;也址的;也iiM立Ai…AO。
如果发送的命令312是MRS命令,该库地址位可以用于识别 MRS类型,而地址位Ai...AO可以用于选4奪并更改才莫式(mode )寄 存器170中的一个。如图所示,该库地址位可用于选4奪4个MRS 命令类型中的一种。如果两个库地址位皆为0,则MRS命令可以用 于更改默认模式寄存器(MRS )。如果BA1是0而BAO是1 ,那么 MRS命令可以用于更改该扩充(extended )的才莫式寄存器。如果BA1 是1而BAO是O,那么MRS命令可以用作一个状态寄存器读取。
如果通过MRS命令接收的两个库地址皆为1,那么该MRS命 令可以是才莫式寄存器11 (MRS 11 )命令并可用于更改由地址位A9 禾口 A8才示i只的MRS 11的库甫ii力寄存器320、 322、 324、 326。 ^口戶斤示 的,地址位A9和A8可以一皮选4奪电^各316 <吏用,来选4奪将被由地 址位A7-A0提供的辅助寄存器值更改的相应的辅助寄存器320、 322、 324、 326。
在一个实施例中,为了激活覆盖窗302,可以用两个都i殳为1 的库地址发送MRS命令,这表示MRS命令将更改MRS 11辅助寄 存器320、322、324、326中的一个。为了选择含有覆盖窗使能(OWE ) 位的辅助寄存器320,在发送的命令中的地址位A9和A8可以都是 0。最后,为了设定该OWE位,在发送的MRS 11命令中的地址位 A6可以是1。
在一个实施例中,该覆盖窗基i也址306可以是4交准i也址(aligned address)(例如,由许多地址位指定的一些数据大小的整数倍的地 址)。如所示,该基地址306可以从3个辅助寄存器322、 324、 326的值获得。因此,为了设定基地址306,可以发送三个MRS 11命 令,其中的[A9 : A8]分别等于"11"、 "10"和"01",从而分别向 辅助寄存器326、 324和322提供基地址。
如上所述,在本发明的一个实施例中,可以^是供默认i殳置用于 覆盖窗属性,如覆盖窗基地址306、覆盖窗大小310、以及该覆盖 窗304是否激活(例如,OWE被设定,还是作为默认设置而被清 除)。在一个实施例中,该默认的覆盖窗基地址306、默认的覆盖窗 大小310、和OWE i殳置可以通过sense-on-reset管脚(pins ) 350诏: 置,如图3D所示。该管脚350可以才艮据希望的覆盖窗基i也址306、 覆盖窗大小310、以及4艮据该覆盖窗304是否^皮默iU敫活而连4妄(例 如,由嵌入系统100的制造商)至高或低压水平。当该易失性存储 器104接收复位信号时(例如,当向该易失性存储器104施加电能 时,或者当易失性存储器104被复位时),该易失性存储器104可 以自动向覆盖窗控制寄存器138和模式寄存器170加载由 sense-on-reset管脚350提供的设置值。该设置值后来可以被覆盖, 例如如上所述通过向^:莫式寄存器170和覆盖窗控制寄存器138发布
命令。可选地,该默认设置可以通过烧断(blowing)易失性存储器 104中的熔丝来按照希望的设置进行设定,或者通过向易失性存储 器104的电路里写设置来设定。
图4是示出根据本发明的一个实施例发送命令来配置覆盖窗 304的时序图。如图所示,在Tl时刻,发送MRS 11命令,其将 MRS 11辅助寄存器中的OWE位设置为"00" ( BA1 、 BAO等于"11", A9、 A8等于"00",以及A7-A0等于十六进制的"40h,,以使A6 等于"l,,)。然后,在T2-T4时刻,可以发送另外的MRS ll命令, 该命令用于设定MRS 11辅助寄存器322、 324、 326的覆盖窗基地 址306 (分别为基;也址O,基;也址1和基;也址2 )。如上所述,在覆 盖窗304 ^皮;敫活并且覆盖窗大小308祐 没定后,为覆盖窗304自动分配的地址空间310可以用来访问包括覆盖窗控制寄存器138的数 据。因此,例如在T6时刻,可以发送一个写命令,其向自动分配 的地址空间310中的相应的易失性存储器地址写覆盖窗大小308。 覆盖窗大小寄存器的地址可以由地址位BA1-BA0和A9-A0提供, 同时大小设定可以通过易失性存储器接口 11的数据输入/输出端 (DQ )提供。在步骤T7可以发送例如访问易失性存储器地址空间 302的其他命令。
尽管上面参照激活覆盖窗304、设定基地址306和设定大小308 进行了描述,但是可以以任何次序执行发送的用于配置覆盖窗304 的命令。此外,如上所述,在一些情况下,可以通过默认来激活窗 口 306,和/或默认值可以用于基地址306和大小308。在这种情况 下,可以不使用上述配置命令,或者只是在嵌入系统i殳计者希望的 时候使用该设定命令。
经由覆盖窗发送命令
在本发明的一个实施例中,在配置了覆盖窗304之后,覆盖窗 304可以用于访问控制寄存器138、 140、 142和覆盖窗緩冲器146。 通过访问控制寄存器138、 140、 142和覆盖窗緩冲器146,主机(host) 102能够借助易失性存储器接口 110发送命令,其导致在非易失性 存储器控制器106中的配置变化、和/或在易失性存储器104和非易 失性存储器108之间的通过非易失性存储器控制器106的数据传 送。
图5是示出根据本发明一个实施例经由覆盖窗304访问控制寄 存器138、 140、 142和覆盖窗緩冲器146的处理500的流程图。处 理500可以在步骤502处开始,在这一步,通过易失性存储器104 的易失性存储器接口 112接收访问命令。在步骤504,可以确定覆 盖窗304是否,皮激活。如果覆盖窗304净皮禁用(OWE = 0),那么在
步骤508,访问命令可以用来访问易失性存^f诸器阵列116。如果该 覆盖窗被激活(OWE=l ),那么在步骤506,可以确定该访问命令 是否访问覆盖窗304中的存储地址。如果访问的地址在覆盖窗304 之外,那么,在步骤508中,访问命令可以用来访问该命令提供的 存储地址处的易失性存储器阵列116。
然而,如果用于访问命令的地址在覆盖窗304之中,那么,在 步骤512中,可以确定该访问地址是否访问覆盖窗304的自动分配 的控制寄存器地址空间310中的存储地址。如果该地址在覆盖窗304 的控制寄存器地址空间310之中,则在步骤514中,该访问地址可 以用来访问存储映射的控制寄存器(例如,覆盖窗控制寄存器138 或者其他存储映射的寄存器140、 142)。如果由访问命令提供的地 址在覆盖窗304之中但在控制寄存器存储空间310之外(并因此在 緩冲器(buffer))地址空间330之中),该访问命令可以用来访问 非易失性存储器108的覆盖窗緩沖器146中的相应的地址。在步骤 510,可以继续处理500。
在本发明的一个实施例中,主机102可以通过向控制寄存器写 命令而发命令给非易失性存储器108和/或非易失性存储器控制器 106。例如,主机102可以向覆盖窗;也址空间304中的存4诸映射的 控制寄存器138、 140、 142发送写命令。该由写命令写的数据本身 可以是一个命令。当该命令被写覆盖窗304时,易失性存储器104 可以使用该接收到的命令向非易失性存储器控制器106和/或非易 失性存储器108发送相应的命令。主机102可以通过从覆盖窗304 中的适当的存储映射寄存器138、 140、 142读取状态数据,来确定 被执行的命令的状态(例如,该命令是未决(pending)还是完成)。 可选地,由易失性存储器104发给主机102的中断信号可以用来向 主机102发送该命令已经完成的信号。在一些情况下,在使用中断 信号的时4美,易失性存〗诸器4妄口 112可以^皮更改以适应这样的中断。在一些情况下,在被写到覆盖窗304的命令使用来自主机102 的数据或者返回来自非易失性存储器108的数据时,可以使用覆盖 窗緩沖器146传送该数据。可选地,也可以从控制窗口 304中的存 储映射寄存器、或者从易失性存储器阵列116获得该数据。在用于 该命令的数据被放置在覆盖窗緩冲器146中或者在覆盖窗304中的 存储映射寄存器中时,主机102可以如上所述地经由覆盖窗304访 问覆盖窗緩冲器146。分别在易失性存储器104和非易失性存储器 控制器106中的緩冲器144和146还可以用来在非易失性存储器108 和易失性存储器104之间传送数据。
图5B是示出根据本发明一个实施例的用于执行写到易失性存 储器104的覆盖窗304的命令的处理540的流程图。该处理540可 以在步骤550开始,在这一步,主机102检查易失性存储器104以 确定是否有4壬4可命令(例如,主才几102以前发送的命令)未决。如 果之前的命令还未完成并仍处于未决,主机102可以等待,直到之 前的命令完成(例如,直到非易失性存储器控制器106已经完成执 行之前的命令)。在一个实施例中,主才几102可以通过借助覆盖窗 304读取存储映射状态寄存器来确定命令是否未决。可选地,易失 性存储器104可以通过向主机102发送中断(信号)而向主机102 表明,之前的命令已经完成。如上所述,对于使用中断信号的情况, 可以#:更改易失性存4诸器《1妄口 112以适应这样的中断。
在确定没有命令是未决的之后,在步骤552中,主机102可以 写命令到在易失性存储器104的覆盖窗304中的存储映射控制寄存 器138、 140、 142的地址,从而在控制寄存器中放置命令。在一些 情况下,如果命令需要其他数据,该数据还可以被写到控制寄存器 138、 140、 142或者写到存储映射覆盖窗緩冲器146中。在步骤554 中,主机102可以设定指示命令已经被写到易失性存储器104的控 制寄存器位。在一个实施例中,主4几102可以通过向对应于覆盖窗304中的存储映射控制寄存器138、 140、 142的地址进行写来设置 该控制寄存器位。可选地,在一个实施例中,易失性存储器104可 以自动检测该命令已被写而没有设置控制寄存器位。
在步骤560中,易失性存储器104可以接收该命令已经被主机 102写的指示。然后,在步骤562中,易失性存储器104可以通过 非易失性存储器接口 120向非易失性存储器控制器106指示已经接 收到命令。在一个实施例中,易失性存4渚器104通过向非易失性存 储器控制器106发送中断而指示已经收到命令。 一旦接收到该中断, 非易失性存储器控制器106就可以在步骤566中通过其非易失性存 储器接口 122读取该命令,并在步骤568中执行接收到的命令。
可选地,代替向非易失性存储器控制器106发送中断,易失性 存储器104可以直接向非易失性存储器控制器106发送一个相应的 命令。易失性存储器104还可以设置指示已经收到新命令的状态寄 存器位。该状态寄存器位可以被存储器控制器106轮询。 一旦检测 到该位已被设置,存储器控制器106可以提取该命令,例如通过向 易失性存储器104发送读取命令。
执行接收到的命令可以包括从非易失性存储器108读取数据, 和将该读取的数据放入易失性存储器阵列116或者易失性存储器 104的覆盖窗緩冲器146中。执行该命令还可以包括将来自覆盖窗 緩冲器146或易失性存储器阵列116的数椐写非易失性存储器108。 执行该命令可以进一步包括在非易失性存储器108和易失性存储器 104之间执行DMA传送,更改非易失性存储器控制器106中(例 如,在iDMA控制器150中,或者在非易失性存储器控制电路124 中)的控制寄存器设置值,执行NAND管理功能,或者如上所述在 非易失性存储器控制器106和易失性存储器104之间传送控制寄存 器设置。
在步骤570中,在该命令已被执行后,非易失性存储器控制器 106可以通过非易失性存储器接口 122向易失性存储器104发送命 令,来设置指示已经执行接收到的命令的控制寄存器位(例如,存 々者映射控制寄存器138、 140、 142的一个中)。在步骤564中,易 失性存储器104可以更新相应的控制寄存器位,以指示该命令已被 执行,在步骤556中,主机可以接收命令已被执行的指示。然后在 步骤558中可以继续处理540。在一个实施例中,主才几102可以通 过读取包含指示命令已被执行的设定位的控制寄存器来确定命令 已祐3丸行(例如,利用经由覆盖窗304轮训控制寄存器138、 140、 142中合适的位)。可选地,在一个实施例中,可以向主才几102发送 指示该命令已^皮^U亍的中断。
经由覆盖窗可访问的示例性的存储映射寄存器和緩冲器
如上所述,当通过i殳置OWE 4立;敫活覆盖窗304时,可以自动 分配控制寄存器存储空间310。 一旦设定覆盖窗304的大小308, 就可以分配另外的緩冲器存储空间330。覆盖窗304还可以包括其 他的緩冲器、存储映射寄存器等。图6示出被自动分配的控制寄存 空间310映射的示例性控制寄存器600的框图。如上所述,该控制 寄存器空间可以从覆盖窗基地址306处开始并延伸到4交高的地址 (例如,从基地址306到图中的基地址306加上"M")。存储映射 寄存器600可以包括系统配置寄存器606、加载-存储(load-store) 命令寄存器608、緩冲器访问命令寄存器610、 NAND管理器命令 控制寄存器612、命令操作数寄存器614、和緩冲器大小信息寄存 器616。
系统配置寄存器606可以用于来更改嵌入式系统100的配置 (例如通过选择在易失性存储器104和非易失性存储器控制器106 之间的合适的数据交换率)。加载-存储(load-store )命令寄存器608 可以接收由主才几102写的数据访问命令。由主才几102写的数据访问
命令可以包括读取命令,用于将来自非易失性存储器108的数据读 取到易失性存储器中存储位置(例如,到覆盖窗緩冲器146,或者 易失性存储器阵列116)。由主机102写的数据访问命令可以进一步 包括写命令,用于将来自易失性存储器104(例如,从覆盖窗緩沖 器146、易失性存储器阵列116、或从命令操作数寄存器614)的数 据写到非易失性存储器108。由主机102写的数据访问命令可以进 一步包括DMA命令,用于通过非易失性存储器控制器106在易失 性存储器104和非易失性存储器108之间执行DMA传送。
在一个实施例中,緩冲器访问命令寄存器610可以^皮主冲几102 用来发送用于访问覆盖窗緩冲器146的命令。NAND管理器命令寄 存器612可以被主机102用来向非易失性存储器控制器106发布命 令。例如,在主机写一个NAND管理器命令到NAND管理器命令 控制寄存器612后,主机102可以设置易失性存储器104中的控制 寄存器位,指示该命令已被写。然后易失性存储器104向非易失性 存储器控制器106发送中断,指示该NAND管理器命令已被接收。 一旦接收中断,非易失性存储器控制器106可以通过易失性存储器 104的非易失性存储器接口 120从易失性存储器104提取命令。然 后,该NAND管理器命令可以被非易失性存储控制电路124执行。
在一个实施例中,控制寄存器空间310还可以包括用于存储命 令操作数的命令操作数寄存器614和緩冲器大小信息寄存器616。 緩冲器大小信息寄存器616可以用于访问例如关于覆盖窗緩冲器 146的信息。该信息可以包括緩沖器146的大小和/或緩冲器146中 的数据量(例如,緩沖器的哪部分被用于数据存储)。在数据传送 过程中,该数据可以;陂主枳i 102或者非易失性存^f诸器控制器106访 问,以确定緩冲器146是不是满的,并确定是否放入更多的数据到 緩冲器146中以便被传送或从緩冲器146读取其他数据。
图7是示出根据本发明一个实施例的分配给每一个存储映射寄 存器600的存储空间的框图。如图所示,可以在第一地址处(例如, 覆盖窗基地址306 )设置系统操作码(op码)寄存器702。类似地, 可以在第一偏移量处i殳置加载/存^f诸(LD/ST) op码寄存器704,可 以在第二偏移量处i殳置緩冲器(BUFF) op代码寄存器706,可以 在第三偏移量处设置NAND op码寄存器708。
才喿作凄t寄存器308、 712、 714可i殳置在如图所示的多个地址偏 移量处。每个操作数可用于提供用来执行由op码寄存器702、 704、 706、 708指定的命令的信息。这些操作数寄存器可包括用于覆盖窗 大小的寄存器308和用于加载/存储操作数(例如,包括被传送数据 的起始地址(SA)和目标地址(DA))的寄存器712。这些操作数寄 存器还可以包括用于存储NAND地址信息和其他数据的操作数寄 存器714。如上所述,存储映射寄存器600还可以包括緩沖器大小 信息寄存器616。
在本发明的一个实施例中,緩存空间330可^f皮划分成多个RAM 緩沖区[l...n]。通过提供多个RAM緩存区(例如,作为覆盖窗緩 沖区、iDMA緩沖区144、或者易失性存储器104中的其他緩冲区 的分区),易失性存储器104可被主机102和/或非易失性存储控制 器106用来执行在易失性存储器阵列116和/或非易失性存储器108 中的不同位置之间的多个凝:据传送。
指定经由覆盖窗发送的命令的操作数
在本发明的一个实施例中,提供至存储映射寄存器600的不同 op码可使用在控制寄存器空间310内以不同偏移量定位的不同操作 凄t寄存器308、 712、 714。在一些情况下,ii置在op码寄存器702、 704、 706、 708中的命令可指定哪些操作数将与该op码一起使用, 从而使得读取该命令的装置(例如,易失性存储器104或非易失性
存储控制器106)确定用于给定的命令的操作数被定位的位置。因 此,在一些情况下,对于给定的命令可使用不同的定位和操作数大 小。
图8是示出根据本发明的一个实施例的发送至op码寄存器(例 如,op码寄存器702、 704、 706、 708中的一个)的命令的框图。 如图所示,命令808可包括命令op码、命令808的操作数长度、 以及命令808的才喿作凄t偏移量。当一装置读取命令808时,该装置 可使用操作数长度和操作数偏移量来确定获得命令操作数的位置。 在本发明的一个实施例中,操作数偏移量可指定可找到操作数的完 整地址。可选地,揭:作凄t偏移量可指定距离存储器中预定位置的偏 移量,例如,距离覆盖窗基地址306、 3巨离命令808的地址802、 或者距离另一预定地址的偏移量。
如图所示,操作数偏移量可提供距离该命令的地址'n', 802 的偏移量。由该偏移量所表示的地址'n', 804可包含用于命令808 的第一操作数。用于命令808的其他操作数可位于从操作数偏移量 所表示的;地址'n', 804 —;地址i+j, 806。
在易失.,储器阵列与非易失'錄储器之间M数据传送
如上所述,覆盖窗(overlay window ) 304可以用于将命令发送 给非易失性存储控制器106。所发送的命令可以包括在易失性存储 器104与非易失性存储器108之间不产生地址数据传送的iMDA配 置命令和NAND管理器配置命令。这样的命令可以提供信息至控制 器106所使用的非易失性存储控制器106,以改变控制寄存器设置。 控制寄存器设置可以用于进^f于后续凄t据传送或者进^于NAND管理 功能。通过主机102经由覆盖窗304发送的命令还可以读取和写命 令,该命令通过非易失性存储控制器106将数据从在易失性存储器 104中的源地址(例如,从才喿作数寄存器714, 从覆盖窗緩冲器146,
或者从易失性存储器阵列116)传送至非易失性存储器108中的目 的地址。命令还可以将数据从非易失性存储器108传送至易失性存 储器104中的某一位置。
在本发明的一个实施例中,由主机102提供的数据传送命令可 以是DMA传送。如图9A所示,第一类型的DMA传送命令(指 STORE命令)可以产生被从易失性存储器阵列116传送至非易失性 存储器108的数据。这些命令可以提供待传送的指定量的数据。在 一些情况下,iDMA控制器150可以发送"i青求至正在^皮传送的每个 数据地址的易失性存储器104。所请求的数据然后被传送至易失性 存储器104中的iDMA緩沖器144,然后传送至非易失性存储控制 器106中的緩沖器154,最后传送至非易失性存储器108中的目的 地址。
在一个实施例中,非易失性存储控制器106中的iDMA控制器 150可以利用iDMA緩冲器144来分流(offload) —部分的DMA 传送工作负荷。例如,iDMA控制器150可以发送一个命令至易失 性存储器104中的iDMA緩冲控制器148,指示从易失性存储器阵 列116传送的数据的量和待传送的数据的源地址。iDMA緩沖控制 器148可以访问(存取)易失性存储器阵列116并且开始将数据传 送至iDMA緩冲器144。iDMA緩冲控制器148可以继续载入iDMA 緩冲器144直到所指定量的数据已经被传送或者直到緩沖器144满 载。
当iDMA緩冲控制器148正在载入iDMA姿爰冲器144时,非易 失性存储控制器106中的iDMA控制器150可以确定iDMA緩冲器 144的状态。这样的确定可以例如通过轮询易失性存储器104中的 緩沖器大小信息寄存器616来进行。可选地,这样的确定可以通过 易失性存储器104中的iDMA緩冲控制器148至非易失性存储控制 器106发送的中断来进行。例如,当任何数据^皮;改置在緩沖器144
中时,当预定量的数据被放置在緩冲器144中时,当由iDMA控制 器150所指定的数据的量被放置在緩冲器144中时,和/或当緩沖器 144满载时,可以发送这样的中断。当iDMA緩沖控制器148确定 緩冲器144包含数据时,在将数据传送至非易失性存储器108之前, iDMA緩冲控制器148可以将数据载入到非易失性存储控制器106 中的緩沖器154中。
在iDMA控制器150已经从iDMA緩冲器144载入数据时,如 果仍然剩余更多待要从易失性存储器阵列116传送的数据,iDMA 控制器150可以指示在易失性存储器104中的iDMA緩冲控制器 148,其可以获得在緩冲器144中的緩冲空间并且可以继续DMA传 送。可选地,当緩沖空间可用时,iDMA緩沖控制器148可以监控 iDMA緩冲器144的状况并自动检测。 一旦检测到可用的緩冲空间, iDMA緩冲控制器148可以再次继续载入緩冲器144,数据从易失 性存储器阵列116至緩冲器144,直到緩冲器144再次满载,或者 直到所指定量的l史据已经传送。
如图9B所示,DMA传送还可以乂人非易失性存4渚器108至易失 性存储器阵列116进行。用于进行这样的传送的命令可以称为 LOAD命令。在一些情况下,如上所述,非易失性存储控制器106 中的iDMA控制器150可以将DMA传送工作负载分流至易失性存 储器104中的iDMA緩沖控制器148。例如,iDMA控制器150可 以发送一个命令至iDMA緩冲控制器148,指示待被传送至易失性 存储器阵列116的数据在由DMA传送命令指定的目的地址处开始。 iDMA緩沖控制器148也可以监控iDMA緩沖器144。当iDMA控 制器150将数据从非易失性存储器108放置到iDMA緩冲器144时, 然后iDMA緩冲控制器148可以开始将所接收的数据写易失性存储 器阵列116。在一个实施例中,iDMA緩冲控制器148可以自动地 检测包含待写数据的緩冲器144。可选地,当緩沖器144包含待传
送至易失性存储器阵列116的数据时,iDMA控制器150可以提供 一种4言号(例如,通过i殳定状态寄存器4立(Status register bit),或 者发送一个中断)至iDMA緩沖控制器148。
在一些情况下,iDMA控制器150可以监控纟爰沖器144 (例如, 通过緩沖状态寄存器)来确定緩冲器144是否满载和/或确定释放在 緩冲器144是否放置更多数据。可选地,当緩沖器144空时和/或当 緩冲器144包含预定量或指定量的可用空间时,iDMA緩冲控制器 148可以^是供一种指示(例如, 一个中断)至iDMA控制器150。
在一些情况下,当DMA传送已经通过非易失性存储控制器106 进行时,非易失性存储控制器106可以通过易失性存储器104指示 给主机102命令已经完成。该指示可以通过非易失性存储控制器106 进行,例如,通过在才莫式寄存器(moderegister) 170的一个中或者 存储器映射寄存器138、 140、 142的一个中设置状态寄存器位。状 态位可以通过主4几102 4仑询以确定4可时命令已经完成。可选地,在 收到来自非易失性存储控制器106的命令之后或者通过非易失性存 储控制器106进行状态位设置之后,易失性存储器104可以发送一 个中断至主才几102以指示DMA传送已经完成。
在一些情况下,在DMA传送涉及(involving)易失性存储器 阵列116期间,主才几102可以^式图同时i方问易失性存4诸器阵列116 以及非易失性存储控制器106或iDMA緩冲控制器148。在这种情 况下,主才几易失性存+者器访问4空制(Host volatile memory access control) 160和iDMA易失性存储器访问控制162可以确定所进行 的访问。在一个实施例中,通过主机102对易失性存储器阵列116 的访问可以优先于经由iDMA易失性存储器访问控制162进行的访 问。在一些情况下,当在多时钟周期(multiple clock cycle )中进4亍 访问时,通过主才几102进4亍的访问可^皮覆盖,并乂人而中断经由iDMA 易失性存储器访问控制162进行的访问。可选地,无论哪个访问被
首先启动都可4皮给予优先序。另外,在iDMA緩沖控制器148正在 进4亍DMA传送时,DMA传送可以暂4亭以《更允i午主才几102 i方问易 失性存储器阵列116。在主机102访问易失性存储器阵列116之后, 然后可以再次进行DMA传送。
在本发明的一个实施例中,对易失性存储器阵列116的多路访 问(multiple access )可以并4亍进4亍。侈'H口,长口果由主才几102进4亍的 访问访问了易失性存储器阵列116中的第一存储体(例如,存储体 136o )同时由iDMA緩沖控制器148进行的访问访问了第二存储体 (例io,存^诸体1363),那么两个i方问可以同时进4亍而不相互干扰。 类似地,当DMA传输(DMA传送)通过采用易失性存储器104 中的緩冲器146、 144的非易失性存储控制器106进行时,主机102 可以同时执行对易失性存储器阵列116的访问而不受干扰。类似地, 当主机102经由覆盖窗304访问模式寄存器170、控制寄存器138、 140、 142时,或者经由覆盖窗304访问緩冲器146时,非易失性存 储控制器106 (或iDMA緩冲控制器148)可以同时访问易失性存 储器阵列116而不受干扰。
经由似窗进行主机与非易失',储器之间的数据传输
在本发明的一个实施例中,如图9C所示,主才几102可经由覆 盖窗304发送在覆盖窗緩冲器146与非易失性存储器108之间传输 数据的DMA传输指令。例如,该命令可指定覆盖窗緩沖器146内 的源地址和非易失性存4诸器108内的目的地址。该命令还可指定要 传输的数据的量。 一旦接收到该命令,iDMA控制器150可将指定 量的数据从覆盖窗緩冲器146自动传输至非易失性存储器108。主 机102还可发送相应的数据命令以将指定量的数据从非易失性存储 器108传输至覆盖窗緩冲器146。然后,如图9D所示,主机102 可经由覆盖窗304访问所传输的凝:据。
在本发明的一个实施例中,主机102可发送DMA传输命令至 非易失性存储控制器106,这些命令使得iDMA控制器150自动在 非易失性存储器108与覆盖窗緩沖器146之间传输数据。因此,或 者通过查询状态寄存器或者通过接收来自易失性存储器104的中 断,该iDMA控制器可确定是应该向覆盖窗緩冲器146传输数据还 是从覆盖窗緩沖器146读出数据。主机102可类似地查询状态寄存 器或接收来自易失性存储器104的中断,从而确定是应从覆盖窗緩 沖器146读出数据还是向覆盖窗緩沖器146写数据,以传输至非易 失性存储器108。
图10A是示出根据本发明的一个实施例的用于执行从主机102 至非易失性存储器108的自动DMA传输的处理1000的框图。该处 理1000可从步骤1002开始,其中,主机102检查易失性存储器104 中的未决命令。在步骤1004中,在确定没有未决的命令之后,主 机102可发送表示覆盖窗緩冲器146中的源地址和在非易失性存储 器108中的目的地址的DMA传输命令。在步骤1016中,如上所述 当经由被查询的状态寄存器或者来自易失性存储器104的中断而检 测到命令时,非易失性存4诸控制器106可4妄收该DMA传l俞命令。
在接收到该命令之后,由主机102和非易失性存储控制器106 执行的步骤可以独立地继续(例如,在非易失性存^f诸控制器106和 主才几102之间不发送进一步的命令)。在步骤1006中,例如通过经 由覆盖窗304检查緩沖器大小信息寄存器616,主机102可检测覆 盖窗緩冲器146是否溢出(overflow)。可选地,在本发明的一个实 施例中,可向主4几102发送一中断,以表示緩冲器146何时为空或 者緩沖器146中何时有可用的预定量的空间。如果没有緩存溢出, 在步骤1008中,主才几102可将凄t据写^爰冲器146。当主才几102或非 易失性存储控制器106从緩冲器读取数据或向緩冲器传输数据时, 在步骤1014中,易失性存储器104可通过例如修改緩冲器大小信 息寄存器616中的设置来更新緩存状态。
在步骤1010中,主机102可确定是否还有数据要写非易失性 存々者器108。如果还有凄t据要写,在步骤1006中,主4几102可继续 才全查緩冲器146中的空间,并在步骤1008中,当緩沖器146中有 可用空间时写緩冲器146。不然的话,在步骤1012中,主机102可
继续处理数据。
在主机102将数据放入緩冲器146中的同时,非易失性存储控 制器106可监控緩冲器146,并当由主机102放入了数据到緩冲器 146中时从其中读出数据。因此,在步骤1018中,非易失性存储控 制器106可才全查》爰沖器146中的凄t据。该才全查可通过例如读取3皮易 失性存储器104更新了的緩冲器大小信息寄存器616来进行。可选 地,当数据被放入緩沖器146中后,或者当指定量的数据被放入緩 冲器146中后,或者当緩冲器146已满时,可向非易失性存储控制 器106发送一中断。如果在步骤1020中非易失性存储控制器106 确定緩沖器146中含有数据,控制器106可从緩冲器146读出数据 并将数据写非易失性存储器108内的目的地址。可选地,如果緩冲 器146中没有凄t据,在步骤1018中,控制器106可继续才企查凄t据。
当控制器106从緩冲器读取数据时,緩沖器大小信息寄存器 616可通过易失性存储器104进行更新。在步骤1024中,控制器 106可确定凄t据传输是否完成。如果数据传输没有完成,在步骤1018 中,控制器106可继续检查緩冲器146中的数据。可选地,如果数 据传输已经完成,那么在步骤1026中,控制器106可以继续处理 数据。在一个实施例中,控制器106可通过确定是否已经传输了指 定量的数据来确定数据传输是否完成。该指定量的数据可例如通过 由主机102所发送DMA传输命令来指定。可选地,当经由覆盖窗 304从主机102向控制器106发送一表示传输已经完成的命令时, 控制器106可确定传输完成。可选地,控制器106可继续检查緩冲 器146或緩冲器146的一部分,以确定主机102是否已在其中放入 了要传输至非易失性存储控制器108的数据。
图IOB是示出根据本发明的一个实施例的用于执行从非易失 性存^f渚器108至主机102的自动DMA传输的处理1050的框图。该 处理1050可以从步骤1052开始,其中,主机102检查易失性存储 器104中的未决命令。在步骤1054中,在确定没有未决的命令之 后,主机102可发送表示非易失性存储器108中的源地址和覆盖窗 緩沖器146中的目的地址的DMA传输命令。如上所述当经由被查 询的状态寄存器或者来自易失性存储器104的中断而检测到命令 时,在步骤1068中,非易失性存储控制器106可4妄收该DMA传输 命令。
在接收到该命令之后,由主机102和非易失性存储控制器106 执行的步骤可以独立地继续进行(例如,在非易失性存储控制器106 和主才几102之间不发送进一步的命令)。在步骤1070中,例如通过 经由覆盖窗304检查緩沖器大小信息寄存器616,控制器106可检 测覆盖窗緩冲器146是否溢出。可选地,在本发明的一个实施例中, 可向控制器106发送一中断,以表示緩沖器146何时为空或者緩冲 器146中何时有可用的预定量的空间。如果没有緩存溢出,在步骤 1072中,控制器106可将数据从非易失性存储器108写緩冲器146。 当控制器106或主机102从緩沖器读取数据或向緩冲器传输数据 时,在步骤1066中,如上所述,易失性存储器104可通过例如修^ 改緩冲器大小信息寄存器616中的设置来更新緩存状态。
在步骤1074中,控制器106可确定是否还有数据要从非易失 性存储器108写緩冲器146。如果还有数据要写,在步骤1070中, 控制器106可继续检查緩沖器146中的空间,并在步骤1072中, 当緩沖器146中有可用空间时写緩沖器146。否则,在步骤1076中, 控制器106可继续处理lt据。在一个实施例中,控制器106可通过 确定是否已经传输了由DMA传输命令指定的数据量来确定是否还 有数据要传输。可选地,控制器106可继续写数据,直到主一几102 发送命令至控制器106表示传输已经完成。
在控制器106将数据放入緩冲器146中的同时,非易失性存储 控制器106可监控緩冲器146,并当由控制器106放入了数据到緩 沖器146中时从其中读出数据。因此,在步骤1056中,非易失性 存<诸控制器106可4企查緩沖器146中的数据。该4企查可通过例如读 取被易失性存储器104更新了的緩冲器大小信息寄存器616来进 行。可选地,当数据被放入緩沖器146中后,或者当指定量的数据 被放入緩冲器146中后,或者当緩冲器146已满时,向主机102发 送一中断。如果在步骤1058中主机102确定緩沖器146含有数据, 那么主才几102可乂人緩冲器146读出数据。可选地,如果-爰冲器146 中没有数据,则在步骤1056中,主机102可继续冲企查数据。
当主机102从緩沖器读取数据时,緩沖器大小信息寄存器616 可通过易失性存4诸器104进行更新。在步骤1062中,主机102可 确定数据传输是否完成。如果数据传输没有完成,在步骤1056中, 主才几102可继续查测緩冲器146中的凄t据。可选地,如果凄t据传输 已经完成,那么在步骤1064中,主才几102可继续处理数据。在一 个实施例中,如上所述,主机102可通过确定是否已经传输了指定 量的凄t据来确定凄t据传,俞是否完成。可选地,每当主才几102要求额 外的数据时,主机102可从緩冲器146或緩沖器146的一部分中继 续读出数据。另外,如上所述,主机102可通过经由覆盖窗304向 存储控制器106发送命令来终止传输。
在本发明的一个实施例中,H冲器146可分成多个扇区。每个 扇区可用于执行由主机102发送的命令所指定的不同DMA传输。 因此,在一些情况下,!^冲器146的一部分可浮皮主枳il02用来自动 地从非易失性存储控制器108中的源地址和连续地址读出数据,同 时緩冲器146的其他部分可被主机102用来自动地将数据写非易失 性存^f诸控制器108中的目的地址和连续地址。
经由覆盖窗访问镜像控制寄存器
在本发明的一个实施例中,主机102可以使用覆盖窗304来访 问在非易失性存储器控制器106中的远程控制寄存器。经由覆盖窗 可访问的远程控制寄存器可以包括USB/ATA控制寄存器158以及 其它控制寄存器(例如,iDMA控制寄存器152)。这样的访问可以 包括确定控制寄存器158的状态并且改变控制寄存器158的设定。
在一个实施例中,如图11所示,可以在覆盖窗304内提供存 储空间1102来访问易失性存储器104中的镜像寄存器1104。在一 个实施例中,镜像寄存器存储空间1102可以位于当覆盖窗304被 激活时(例如,当覆盖窗位OWE被设定时)自动分配的存储空间 310中。优选地,当设置覆盖窗的大小308时,可以分配控制寄存 器空间1102。在一些情况下,在参照图6描述的控制寄存器600的 存储空间之后,可以立即分配控制寄存器空间1102。可选地,在緩 冲存储空间330之后分配控制寄存器空间1102。另夕卜,在一个实施 例中,例如,通过提供在覆盖窗304内的镜像控制寄存器(其用来 指定用于映射控制寄存器地址空间1102的基地址和/或大小),可以 对映射控制寄存器空间1102的位置进行配制。
图12是描述根据本发明的一个实施例的用于经由镜像控制寄 存器1104访问远程控制寄存器158的处理1200的流程图。该处理 1200可以/人主才几102 4企测用于4寺处理(pending)命令的易失性存 储器104的步骤1202开始。当该主机102确定没有命令要处理时, 该主机102可以通过该易失性存储器104的易失性存储器接口 112 写数据到镜像控制寄存器地址空间1102。向镜像控制存储器空间 1102写的数据可以位于在镜像控制寄存器中1104中。然后,主机 102可以在指示镜像控制寄存器1104已被修改(modified)的步骤 1206中,在易失性存储器104中设置控制寄存器位。可选的,易失 性存々者器104可以自动确定该4t像控制寄存器1104已#1更新。
在步骤1212中,易失性存储器104可以收到镜像控制寄存器 1104已被修改的指示。然后,在步骤1214中,易失性存储器104 可以指示给非易失性存储器控制器106镜像控制寄存器1104已被 修改。通过发布中断给非易失性存储器控制器106或设置状态位, 该指示可以提供给非易失性存储器控制器106,其中,该状态位可 以通过非易失性存储器控制器106轮询(poll)。当接收到镜像寄存 器1104已^^修改的指示后,非易失性存^f诸器控制器106可以在步 骤1218中从易失性存储器104内的4竟像寄存器1104载入数据,并 且在步骤1220中将载入的凝:据力文入控制寄存器158中。
在步骤1222中,非易失性存储器控制器106可以发给易失性 存储器104命令来设置控制寄存器位,该控制寄存器位指示远程控 制寄存器158已被成功更新。在某些情况下,非易失性存储器控制 器106也可以提供来自被放置在易失性存储器104内的镜像控制寄 存器1104中的远程控制寄存器158的更新信息的拷贝。在步骤1216 中,易失性存储器104可以更新(update)控制寄存器位,该控制 寄存器位指示远程控制寄存器158已被更新。主机102可以接收到 控制存4渚器158在步骤1208中已^皮更新的指示。然后,处理过程 1200可以继续步骤1210。
虽然披露了上述有关通过主机102发送的命令执行的镜像,在 某些情况下,镜像可以通过易失性存储器104自动执行(例如,通 过设定由非易失性存储器106或发布至非易失性存储器控制器106 的中断检测的状态寄存器位),例如,每次镜像控制寄存器1104被 更新。当状态寄存器位或中断被存储器控制器106检测到时,存储 器控制器106可以自动将镜像控制寄存器1104载入远程控制寄存 器158。可选的,镜^象可以通过易失性存储器104在指定间隔执行。
此外,在某些情况下,例如,通过发送命令或写数据到包括来 自远程控制寄存器158 (位于镜像控制寄存器1104中)的更新数据
的易失性存储器104中,由非易失性存储器控制器106发起对来自 远程控制寄存器158的更新数据的镜像。在一实施例中,非易失性 存储器控制器106可以周期性地发起镜像,例如,在指定间隔。在 一实施例中,指定间隔可以由主才几102通过镜Z像控制寄存器1104 来指定。可选的,每次远程控制寄存器158#^修改时,非易失性存 储器控制器106均可以更新镇 像控制寄存器1104。
在一实施例中,当镜像控制寄存器1104通过非易失性存储106 来更新时,易失性存储器104可以提供用于主机102的更新命令。 该命令可以通过例如乂人易失性存^f诸器104发布中断到主才几102或设 置易失性存储器104内的状态寄存器位来提供,该状态存储器位可 以由主才几102通过才莫式寄存器170或通过存4诸-映射控制寄存器 138、 140、 142来i方问(例》口,查询)。
结论
虽然披露了上述有关通过易失性存储器接口访问易失性存储 器和非易失性存储器的处理器,本发明的一些实施例也可以用于嵌 入系统,在该嵌入系统中,主机处理器通过附加接口访问附加的存 储部件(例如,易失性存储器和非易失性存储器)。同样的,虽然 披露了上述有关在分离的模具上制造的易失性存储器、非易失性存 储器以及非易失性存储器控制器,也可以利用本发明的实施例,其 中,在相同的模具上制造独立部件(例如,易失性存储器和非易失 性存储器控制器或非易失性存储器和非易失性存储器控制器)。
虽然前述是本发明的实施例,本发明的其它或者另外的实施例 可以在不背离它们的基本范围的情况下进行设计,它们的范围由权 利要求来限定。
权利要求
1.一种用于通过易失性存储装置在非易失性存储装置中访问数据的方法,所述方法包括在所述易失性存储装置的地址空间中配置覆盖窗的大小和基地址,其中所述覆盖窗包括一系列存储地址;经由所述易失性存储装置的易失性存储器接口接收访问命令;如果所述访问命令的地址在所述覆盖窗之外,则使用所述访问命令访问所述易失性存储装置的存储器阵列;以及如果所述访问命令的所述地址在所述覆盖窗之内,则使用所述访问命令经由所述易失性存储装置的非易失性存储器接口访问所述非易失性存储装置。
2. 根据权利要求1所述的方法,其中,使用所述访问命令访问所 述非易失性存储装置包括经由所述易失性存储装置的所述非易失性存储器接口将 所述访问命令通知非易失性存储器控制器;如果所述访问命令是写命令,则把将要被写入所述非易 失性存储装置的数据提供给所述非易失性存储器控制器;以及如果所述访问命令是读命令,则经由所述非易失性存4诸 器接口从所述非易失性存储器控制器接收数据。
3. 根据权利要求2所述的方法,其中,将所述访问命令通知所述 非易失性存储器控制器包括在所述易失性存储装置中设置状 态寄存器位。
4. 根据权利要求2所述的方法,其中,将所述访问命令通知所述 非易失性存储器控制器包括向所述非易失性存储器控制器发 送中断。
5. 根据权利要求1所述的方法,其中,使用所述访问命令访问所 述非易失性存储装置包括在所述易失性存储装置的緩沖器中 放置用于所述访问命令的数据,其中,通过非易失性存储器控 制器经由所述非易失性存储器接口将所述数据自动传送给所 述非易失性存储装置。
6. 根据权利要求1所述的方法,其中,使用所述访问命令访问所 述非易失性存储装置包括从所述易失性存储装置内的緩沖器 读取用于所述访问命令的数据,其中,通过非易失性存储器控 制器经由所述非易失性存储器接口将所述数据从所述非易失 性存储装置传送到所述緩沖器。
7. 根据权利要求1所述的方法,其中,配置所述覆盖窗的所述大 小和所述基地址包括在检测到所述易失性存储装置已经被重 置的情况下,由多个重置销加载所述大小和基地址。
8. —种通过易失性存储装置访问非易失性存储装置中的数据的 方法,所述方法包4舌向所述易失性存储装置发送一个或多个用于指示所述易 失性存储装置的地址空间内的覆盖窗的大小和基地址的命令, 其中,所述覆盖窗包括一系列存储地址;通过所述易失性存储装置的非易失性存储器接口发送访 问命令,其中 在所述访问命令的地址处于所述覆盖窗之外的情况 下,所述访问命令被用于访问所述易失性存储装置的存储器阵列;以及在所述访问命令的所述地址处于所述覆盖窗之内的 情况下,所述访问命令被用于经由所述易失性存储装置 的非易失性存储器接口访问所述非易失性存储装置。
9. 根据权利要求8所述的方法,其中,向所述易失性存储装置发 送所述访问命令包括将所述访问命令写入所述覆盖窗内的存储-映射寄存器的 地址。
10. 冲艮据权利要求9所述的方法,进一步包4舌在所述易失性存储装置中设置控制寄存器位,所述控制 寄存器位用于指示所述访问命令已经被写入所述覆盖窗的所 述存储-映射寄存器的所述地址。
11. 根据权利要求8所述的方法,其中,向所述易失性存储装置发 送所述访问命令包括将数据写入所述易失性存储装置内的緩沖器,其中,经 由所述覆盖窗访问所述緩沖器,并且其中非易失性存储器控制 器被配置为经由所述易失性存储装置的非易失性存储器接口 从所述緩冲器读取数据,并将所述数据写入所述非易失性存储 装置。
12. 根据权利要求8所述的方法,其中,向所述易失性存储装置发 送所述访问命令包4舌经由所述覆盖窗向非易失性存储器控制器发送直接存储 访问命令,其中,响应于接收所述命令,所述非易失性存储器 控制器被配置为从所述非易失性存储装置读取数据,并将所述数据写入所述易失性存储装置内的緩沖器;以及从所述易失性存储装置内的緩冲器读取所述数据,其中, 经由所述覆盖窗访问所述緩冲器。
13. 根据权利要求8所述的方法,其中,向所述易失性存储装置发 送一个或多个用于指示所述易失性存储装置的地址空间内的 所述覆盖窗的大小和基地址的命令包括向所述易失性存储装置发送模式寄存器设置(MRS)命 令,其中,所述MRS命令提供所述覆盖窗的基地址的至少一 部分;以及发送写命令,所述写命令用于将所述覆盖窗的所述大小 写入所述覆盖窗内的存储-映射寄存器的地址。
14. 一种易失性存储装置,包括易失性存储器接口;非易失性存储器接口;易失性存储器阵列;*控制电^各,^皮配置为配置在所述易失性存储装置的地址空间内的覆盖窗 的大小和基地址,其中,所述覆盖窗包括一系列存储地 址;通过所述易失性存储器接口接收访问命令;如果所述访问命令的地址处于所述覆盖窗之外,则 使用所述访问命令访问所述易失性存储装置的所述易失 性存储器阵列;以及 如果所述访问命令的所述地址处于所述覆盖窗之 内,则使用所述访问命令经由所述易失性存储装置的非 易失性存储器接口访问所述非易失性存储装置。
15. 根据权利要求14所述的易失性存储装置,其中,使用所述访 问命令访问所述非易失性存储装置包括通过所述非易失性存储器接口将所述访问命令通知非易 失性存储器控制器;如果所述访问命令是写命令,则把将要被写入所述非易 失性存储装置的数据提供给所述非易失性存储器控制器;以及如果所述访问命令是读命令,则经由所述非易失性存储 器接口从所述非易失性存储器控制器接收数据。
16. 根据权利要求15所述的易失性存储装置,其中,将所述访问 命令通知非易失性存储器控制器包括在所述易失性存储装置 中设置状态寄存器位。
17. 根据权利要求15所述的易失性存储装置,其中,将所述访问 命令通知所述非易失性存储器控制器包括向所述非易失性存 储器控制器发送中断。
18. 根据权利要求14所述的易失性存储装置,其中,使用所述访 问命令访问所述非易失性存储装置包括在所述易失性存储装 置的緩冲器中放置用于所述访问命令的数据,其中,通过非易 失性存储器控制器经由所述非易失性存储器接口将所述数据 自动传送给所述非易失性存储装置。
19. 根据权利要求14所述的易失性存储装置,其中,使用所述访 问命令访问所述非易失性存储装置包括从所述易失性存储装 置内的緩冲器读取用于所述访问命令的数据,其中,通过非易 失性存储器控制器经由所述非易失性存储器接口将所述数据 从所述非易失性存储装置传送到所述緩冲器。
20. 根据权利要求14所述的易失性存储装置,其中,配置所述覆 盖窗的所述大小和所述基地址包括在才企测到所述易失性存储 装置已经被重置的情况下,由多个重置销加载所述大小和基地 址。
21. —种处理器,包括用于与易失性存储装置进行通信的接口 ;4空制电3各,;陂配置为向所述易失性存储装置发送一个或多个用于指示所 述易失性存储装置的地址空间内的覆盖窗的大小和基地 址的命令,其中,所述覆盖窗包括一系列存储地址;向所述易失性存储装置发送访问命令,其中在所述访问命令的i也址处于所述覆盖窗之外的 情况下,所述访问命令被用于访问所述易失性存储 装置的存储器阵列;以及在所述访问命令的所述i也址处于所述覆盖窗之 内的情况下,所述访问命令^皮用于经由所述易失性 存储装置的非易失性存储器接口访问所述非易失性 存储装置。
22. 根据权利要求21所述的处理器,其中,向所述易失性存储装 置发送所述访问命令包括将所述访问命令写入所述覆盖窗内的存储-映射寄存器的 地址。
23. 根据权利要求21所述的处理器,其中,向所述易失性存储装 置发送所述访问命令包括将数据写入所述易失性存储装置内的緩冲器,其中,经 由所述覆盖窗访问所述緩沖器,并且其中所述非易失性存储器 控制器被配置为经由所述易失性存储装置的非易失性存储器 接口从所述緩冲器读取数据,并将所述数据写入所述非易失性 存储装置。
24. 根据权利要求21所述的处理器,其中,向所述易失性存储装 置发送所述访问命令包括经由所述覆盖窗向非易失性存储器控制器发送直接存储 访问命令,其中,响应于接收所述命令,所述非易失性存储器 控制器被配置为从所述非易失性存储装置读取数据,并将所述 数据传送至所述易失性存储装置内的緩冲器;以及从所述易失性存储装置内的緩冲器读取所述数据,其中, 经由所述覆盖窗访问所述緩沖器。
25. 根据权利要求21所述的处理器,其中,向所述易失性存储装 置发送一个或多个用于指示覆盖窗的大小和基地址的命令包 括-.向所述易失性存储装置发送模式寄存器设置(MRS)命 令,其中,所述MRS命令4是供所述覆盖窗的基地址的至少一 部分;以及 发送写命令,所述写命令用于将所述覆盖窗的所述大小 写入所述覆盖窗内的存储-映射寄存器的地址。
26.—种系统,包4舌易失性存储装置,包括 易失性存储器接口; 第一非易失性存储器接口; 緩沖器;控制寄存器;以及 易失性存储器阵列; 非易失性存储装置;非易失性存储器控制器,被配置为经由第 一非易失性存 储器接口访问所述易失性存储装置,经由第二非易失性存储器 接口访问所述非易失性存储装置;以及处理器,被配置为向所述易失性存储装置发送一个或多个用于指示所 述易失性存储装置的地址空间内的覆盖窗的大小和基地 址的命令,其中,所述覆盖窗包4舌一系列存+者地址;向所述易失性存储装置发送访问命令,其中在所述访问命令的i也址处于所述覆盖窗之外的 情况下,所述访问命令^皮用于访问所述易失性存储 装置的存储器阵列;以及在所述访问命令的地址处于所述覆盖窗之内的 情况下,所述访问命令#1用于经由所述易失性存<诸 装置的所述第 一非易失性存储器接口访问所述非易 失性存储装置。
27. 根据权利要求26所述的系统,其中,向所述易失性存储装置 发送所述访问命令包括将所述访问命令写入所述覆盖窗内的存储-映射寄存器的 地址。
28. 根据权利要求26所述的系统,其中,向所述易失性存储装置 发送所述访问命令包括将数据写入所述易失性存储装置内的緩沖器,其中,经 由所述覆盖窗访问所述緩沖器,并且其中所述非易失性存储器 控制器被配置为经由所述易失性存储装置的所述第 一非易失 性存储器接口从所述緩沖器读取数据,并将所述数据写入所述 非易失性存储装置。
29. 根据权利要求26所述的系统,其中,向所述易失性存储装置 发送所述访问命令包括经由所述覆盖窗向非易失性存储器控制器发送直接存储 访问命令,其中,响应于接收所述命令,所述非易失性存储器 控制器被配置为从所述非易失性存储装置读取数据,并将所述 数据写入所述易失性存储装置内的緩冲器;以及从所述易失性存储装置内的緩冲器读取所述数据,其中, 经由所述覆盖窗访问所述緩冲器。
30. 根据权利要求26所述的系统,其中,向所述易失性存储装置 发送一个或多个用于指示所述覆盖窗的大小和基地址的命令 包括向所述易失性存储装置发送模式寄存器设置(MRS)命 令,其中,所述MRS命令4是供所述覆盖窗的基地址的至少一 部分;以及 发送写命令,所述写命令用于将所述覆盖窗的所述大小 写入所述覆盖窗内的存储-映射寄存器的地址。
31. —种易失性存储装置,包括用于连接所述易失性存储装置的装置;用于连接非易失性存储器的装置;用于存储的装置;4空制电路,纟皮配置为配置在所述易失性存储装置的地址空间内的覆盖窗 的大小和基地址,其中,所述覆盖窗包括一系列存储地 址;经由用于连接所述易失性存储装置的装置接收访问 命令;如果所述访问命令的地址在所述覆盖窗之外,则4吏 用所述访问命令访问用于存储的装置;以及如果所述"i方问命令的所述:l也址在所述覆盖窗之内,则使用所述访问命令经由用于连接非易失性存储器的装 置访问非易失性存储装置。
32. 根据权利要求31所述的易失性存储装置,其中,使用所述访 问命令访问所述非易失性存储装置包括经由所述用于连接非易失性存储器的装置将所述访问命 令通知非易失性存储器控制器;如果所述访问命令是写命令,则把将要被写入所述非易 失性存储装置的数据提供给所述非易失性存储器控制器;以及如果所述访问命令是读命令,则经由所述用于连4妄非易 失性存储器的装置从所述非易失性存储器控制器接收数据。
33. 根据权利要求32所述的易失性存储装置,其中,将所述访问 命令通知非易失性存储器控制器包括在所述易失性存储装置 中设置状态寄存器位。
34. 根据权利要求32所述的易失性存储装置,其中,将所述访问 命令通知所述非易失性存储器控制器包括向所述非易失性存 储器控制器发送中断。
35. 根据权利要求31所述的易失性存储装置,其中,使用所述访 问命令访问所述非易失性存储装置包括在所述易失性存储装置的緩冲器中放置用于所述访问命令的数据,其中,通过非易 失性存储器控制器经由所述用于连接非易失性存储器的装置 将所述数据自动传送给所述非易失性存储装置。
36. 根据权利要求31所述的易失性存储装置,其中,使用所述访 问命令访问所述非易失性存储装置包括从用于在所述易失性 存储装置内进行緩沖的装置中读取用于所述访问命令的数据, 其中,通过非易失性存储器控制器经由所述用于连接非易失性 存储器的装置将所述数据从所述非易失性存储装置传送到用 于进行緩冲的装置。
37. 根据权利要求31所述的易失性存储装置,其中,配置所述覆 盖窗的所述大小和所述基地址包括在4企测到所述易失性存储 装置已经;故重置的情况下,由多个重置销加载所述大小和基地 址。
全文摘要
本发明的实施方式提供了用于经由易失性存储装置访问非易失性存储装置中的数据的方法、装置和系统。在一个实施方式中,该方法包括在易失性存储装置的地址空间中配置覆盖窗的大小和基地址。该覆盖窗包括一系列存储地址。该方法还包括经由该易失性存储装置的易失性存储器接口接收访问命令,如果访问命令的地址在覆盖窗之内,则使用访问命令经由易失性存储装置的非易失性存储器接口访问非易失性存储装置。
文档编号G06F3/06GK101101533SQ20071013653
公开日2008年1月9日 申请日期2007年7月6日 优先权日2006年7月6日
发明者罗姆-申·卡奥 申请人:奇梦达北美公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1