新存储器结构中的控制协议和信令的制作方法

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

发明内容
本发明的实施例总体提供了 一种用于配置易失性存储器中的覆 盖窗的方法。在一个实施例中,该方法包括4妄收提供用于覆盖窗的 至少一部分基地址的第一命令,其中,覆盖窗包括一系列存储器地 址,并且接收提供覆盖窗的大小的第二命令。如果访问命令的地址
在覆盖窗之外,则由易失性存储装置接收的访问命令被用于访问易 失性存储器的存储器阵列。如果访问命令的地址在覆盖窗之内,则 由易失性存储装置接收的访问命令被用于访问存储器阵列之外的存 储器位置。


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