经由存储装置访问控制寄存器的方法

文档序号:6611210阅读:175来源:国知局
专利名称:经由存储装置访问控制寄存器的方法
技术领域
本发明总的来说涉及计算机系统中的存储器访问。

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


发明内容
本发明的实施例提供了一种用于经由易失性存储装置访问远程装置中的远程控制寄存器的方法、装置和系统。在一个实施例中,所述方法包括通过易失性存储装置经由易失性存储器接口接收用于更新易失性存储装置内的镜像控制寄存器的写命令。该方法还包括将镜像控制寄存器经由第二接口从易失性存储装置传送至远程装置中的远程控制寄存器。在一个实施例中,远程控制寄存器包括通用串行总线(USB)寄存器和高级技术附件(ATA)寄存器中的一种。



为了可以更详细地理解本发明的上述特征,下面将结合实施例详细描述本发明以上概括的特征,其中一些实施方式在附图中给出。然而,应当注意,附图仅描述了本发明的典型实施例,因此并不能认为限制其范围,本发明可以允许其他同等效果的实施例。
图1A-1C是示出根据本发明实施例的嵌入式系统的方框图; 图2A-2B是示出根据本发明实施例的用于配置覆盖窗的处理的流程图; 图3A-3D是示出根据本发明一个实施例的覆盖窗配置的外观的框图; 图4是示出根据本发明一个实施例所发送的用于配置覆盖窗的命令的时序图; 图5A-5B是示出根据本发明实施例经由覆盖窗访问数据和发送命令的处理的流程图; 图6-7是示出根据本发明实施例的覆盖窗中的控制寄存器和缓冲器的框图; 图8是示出根据本发明一个实施例的向op码寄存器发送的命令的框图; 图9A-9D是示出根据本发明的实施例的嵌入式系统中的数据传送的框图; 图10A-10B是示出根据本发明实施例用于在主机和非易失性存储器之间执行DMA传送处理的流程图; 图11是示出根据本发明一个实施例的经由覆盖窗访问的镜像控制寄存器的框图;以及 图12是示出根据本发明一个实施例用于镜像控制寄存器数据的处理的流程图。

具体实施例方式 本发明的实施例提供了一种用于经由易失性存储装置访问远程装置中的远程控制寄存器的方法、装置和系统。在一个实施例中,所述方法包括通过易失性存储装置经由易失性存储器接口接收用于更新易失性存储装置内的镜像控制寄存器的写命令。该方法还包括将镜像控制寄存器经由第二接口从易失性存储装置传送至远程装置中的远程控制寄存器。在一个实施例中,远程控制寄存器包括通用串行总线(USB)寄存器和高级技术附件(ATA)寄存器中的一种。
嵌入式系统 图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)接口和至其他嵌入式系统组件(诸如其他的存储器组件、磁盘驱动器和其他装置)的其他接口。并且,如下面所描述的,主机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中相应的变化。这样的变化可以,例如导致向iDMA控制器150发送命令,这导致例如在易失性存储器104、非易失性存储器控制器106和非易失性存储器108之间执行DMA传输。
在一个实施例中,例如,DMA传输(transfer)可以使用非易失性存储器控制器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还可以包括通用串行总线(USB)/高级技术附件(ATA)寄存器142,其可以用来控制非易失性存储器控制器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个地址位(例如,两个库地址位BA0和BA1和16个地址位A[15:0]),那么易失性存储器104的地址空间302可以包括262,144个地址(2的18次幂),其允许可以访问易失性存储器104中的高达256k的数据的行项(row entry)(其中,每一行项对应于一给定的地址)。
在某些情况下,通过经由易失性存储器接口112访问覆盖窗304中的地址,主机102能够访问非易失性存储器108以及覆盖窗控制寄存器138、iDAM控制寄存器140和USB/ATA控制寄存器142中的数据。因此,覆盖窗304可以允许通过易失性存储器接口112访问不同于易失性存储器阵列116的寄存器和存储器阵列。如果通过易失性存储器接口112接收的访问命令(例如,读或写命令)没有落在由覆盖窗指定的地址的范围中,那么访问命令可以用于访问易失性存储器阵列116。如果接收的地址落在覆盖窗304中,那么访问命令可以用来访问其他数据(例如,在易失性存储器104的覆盖窗缓冲器146或控制寄存器138、140、142中的数据)。
如上所述,覆盖窗304可以占据(occupy)易失性存储器地址空间302的一部分。在一个实施例中,例如,作为经由易失性存储器接口112接收的命令的结果,覆盖窗304可以是被使能或被禁止的。而且,在某些情况下,被覆盖窗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中的数据量要大(例如,可以提供比数据更多的数据地址),这允许覆盖窗304位于易失性存储器地址空间302的一部分,其并不覆盖易失性存储器阵列116的数据地址。
图2A是示出根据本发明一个实施例用于配置覆盖窗304的处理200的流程图。处理200可以以步骤202开始,其中使能覆盖窗304。在步骤204,可以设置用于覆盖窗304的基地址306。基地址306可以指示覆盖窗304开始处的易失性存储器地址。在一个实施例中,可以限制基地址306,使得选择的基地址306仅落在页面大小边界。可选地,对于基地址306,可以使用任何对准(alignment)(例如,字节对准)。在步骤206,可以设置覆盖窗304的大小308。覆盖窗304的大小308可以,例如,表示以基地址306开始的覆盖窗304占据的易失性存储器地址的范围。在一个实施例中,可以加倍设定的大小308的值,以确定实际大小(例如,覆盖窗304的实际大小可以是以1024(1K)或2048(2K)乘以设定的大小)增加的供给大小,以使大小308分配用于覆盖窗304的存储地址的块的整数。在步骤208,覆盖窗304可以用于数据访问(例如,用于访问覆盖窗缓冲器146和/或控制寄存器138、140、142)。
通常,图2A中示出的处理200可以使用本领域普通技术人员已知的任何方法来实施。例如,每一步骤可以通过向易失性存储器104发送命令而实施。可选地,对于每一覆盖窗属性(例如,覆盖窗是否是激活的,基地址306和/或大小),可以提供可变的默认设置和/或永久预置设置。
图2B是示出用于配置根据本发明一个实施例的覆盖窗304的示例性处理210的流程图。处理210可以以步骤212开始,其中覆盖窗使用模式寄存器组(MRS)命令通过在易失性存储器104的模式寄存器170中设置覆盖窗使能(OWE)位而激活。然后,在步骤214,用于覆盖窗304的基地址306可以使用MRS命令设置。
在一个实施例中,如图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可以表明从先前设定的基地址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的命令可以包括命令部分312和地址部分314,该地址部分314包括标识将被访问的易失性存储器阵列116的库(bank)136的库地址位(bank address bit)BA0,BA1,以及指示在将被访问的指定库136中地址的地址位Ai...A0。
如果发送的命令312是MRS命令,该库地址位可以用于识别MRS类型,而地址位Ai...A0可以用于选择并更改模式(mode)寄存器170中的一个。如图所示,该库地址位可用于选择4个MRS命令类型中的一种。如果两个库地址位皆为0,则MRS命令可以用于更改默认模式寄存器(MRS)。如果BA1是0而BA0是1,那么MRS命令可以用于更改该扩充(extended)的模式寄存器。如果BA1是1而BA0是0,那么MRS命令可以用作一个状态寄存器读取。
如果通过MRS命令接收的两个库地址皆为1,那么该MRS命令可以是模式寄存器11(MRS11)命令并可用于更改由地址位A9和A8标识的MRS 11的辅助寄存器320、322、324、326。如所示的,地址位A9和A8可以被选择电路316使用,来选择将被由地址位A7-A0提供的辅助寄存器值更改的相应的辅助寄存器320、322、324、326。
在一个实施例中,为了激活覆盖窗302,可以用两个都设为1的库地址发送MRS命令,这表示MRS命令将更改MRS 11辅助寄存器320、322、324、326中的一个。为了选择含有覆盖窗使能(OWE)位的辅助寄存器320,在发送的命令中的地址位A9和A8可以都是0。最后,为了设定该OWE位,在发送的MRS 11命令中的地址位A6可以是1。
在一个实施例中,该覆盖窗基地址306可以是校准地址(alignedaddress)(例如,由许多地址位指定的一些数据大小的整数倍的地址)。如所示,该基地址306可以从3个辅助寄存器322、324、326的值获得。因此,为了设定基地址306,可以发送三个MRS 11命令,其中的[A9:A8]分别等于“11”、“10”和“01”,从而分别向辅助寄存器326、324和322提供基地址。
如上所述,在本发明的一个实施例中,可以提供默认设置用于覆盖窗属性,如覆盖窗基地址306、覆盖窗大小310、以及该覆盖窗304是否激活(例如,OWE被设定,还是作为默认设置而被清除)。在一个实施例中,该默认的覆盖窗基地址306、默认的覆盖窗大小310、和OWE设置可以通过复位感测管脚(sense-on-reset pin)350设置,如图3D所示。这些管脚350可以根据希望的覆盖窗基地址306、覆盖窗大小310、以及根据该覆盖窗304是否被默认激活而连接(例如,由嵌入系统100的制造商)至高或低压水平。当该易失性存储器104接收复位信号时(例如,当向该易失性存储器104施加电能时,或者当易失性存储器104被复位时),该易失性存储器104可以自动向覆盖窗控制寄存器138和模式寄存器170加载由复位感测管脚350提供的设置值。该设置值后来可以被覆盖,例如如上所述通过向模式寄存器170和覆盖窗控制寄存器138发布命令。可选地,该默认设置可以通过烧断(blowing)易失性存储器104中的熔丝来按照希望的设置进行设定,或者通过向易失性存储器104的电路里写设置来设定。
图4是示出根据本发明的一个实施例发送命令来配置覆盖窗304的时序图。如图所示,在T1时刻,发送MRS 11命令,其将MRS 11辅助寄存器中的OWE位设置为“00”(BA1、BA0等于“11”,A9、A8等于“00”,以及A7-A0等于十六进制的“40h”以使A6等于“1”)。然后,在T2~T4时刻,可以发送另外的MRS 11命令,该命令用于设定MRS 11辅助寄存器322、324、326的覆盖窗基地址306(分别为基地址0,基地址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。在这种情况下,可以不使用上述配置命令,或者只是在嵌入系统设计者希望的时候使用该设定命令。
经由覆盖窗发送命令 在本发明的一个实施例中,在配置了覆盖窗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中的存储地址。如果该地址在覆盖窗304的控制寄存器地址空间310之中,则在步骤514中,该访问地址可以用来访问存储器映射控制寄存器(例如,覆盖窗控制寄存器138或者其他存储器映射寄存器140、142)。如果由访问命令提供的地址在覆盖窗304之中但在控制寄存器存储空间310之外(并因此在缓冲器(buffer))地址空间330之中),该访问命令可以用来访问非易失性存储器108的覆盖窗缓冲器146中的相应的地址。在步骤510,可以继续处理500。
在本发明的一个实施例中,主机102可以通过向控制寄存器写命令而发命令给非易失性存储器108和/或非易失性存储器控制器106。例如,主机102可以向覆盖窗地址空间304中的存储器映射控制寄存器138、140、142发送写命令。该由写命令写的数据本身可以是一个命令。当该命令被写覆盖窗304时,易失性存储器104可以使用该接收到的命令向非易失性存储器控制器106和/或非易失性存储器108发送相应的命令。主机102可以通过从覆盖窗304中的适当的存储器映射寄存器138、140、142读取状态数据,来确定被执行的命令的状态(例如,该命令是未决(pending)还是完成)。可选地,由易失性存储器104发给主机102的中断信号可以用来向主机102发送该命令已经完成的信号。在一些情况下,在使用中断信号的时候,易失性存储器接口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的地址,从而在控制寄存器中放置命令。在一些情况下,如果命令需要其他数据,该数据还可以被写到控制寄存器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轮询。一旦检测到该位已被设置,存储器控制器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发送指示该命令已被执行的中断。
经由覆盖窗可访问的示例性的存储器映射寄存器和缓冲器 如上所述,当通过设置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发布命令。例如,在主机写一个NAND管理器命令到NAND管理器命令控制寄存器612后,主机102可以设置易失性存储器104中的控制寄存器位,指示该命令已被写。然后易失性存储器104向非易失性存储器控制器106发送中断,指示该NAND管理器命令已被接收。一旦接收中断,非易失性存储器控制器106可以通过易失性存储器104的非易失性存储器接口120从易失性存储器104提取命令。然后,该NAND管理器命令可以被非易失性存储控制电路124执行。
在一个实施例中,控制寄存器空间310还可以包括用于存储命令操作数的命令操作数寄存器614和缓冲器大小信息寄存器616。缓冲器大小信息寄存器616可以用于访问例如关于覆盖窗缓冲器146的信息。该信息可以包括缓冲器146的大小和/或缓冲器146中的数据量(例如,缓冲器的哪部分被用于数据存储)。在数据传输过程中,该数据可以被主机102或者非易失性存储器控制器106访问,以确定缓冲器146是不是满的,并确定是否放入更多的数据到缓冲器146中以便被传输或从缓冲器146读取其他数据。
图7是示出根据本发明一个实施例的分配给每一个存储器映射寄存器600的存储空间的框图。如图所示,可以在第一地址处(例如,覆盖窗基地址306)设置系统操作码(op码)寄存器702。类似地,可以在第一偏移量处设置加载/存储(LD/ST)op码寄存器704,可以在第二偏移量处设置缓冲器(BUFF)op代码寄存器706,可以在第三偏移量处设置NAND op码寄存器708。
操作数寄存器308、712、714可设置在如图所示的多个地址偏移量处。每个操作数可用于提供用来执行由op码寄存器702、704、706、708指定的命令的信息。这些操作数寄存器可包括用于覆盖窗大小的寄存器308和用于加载/存储操作数(例如,包括被传输数据的起始地址(SA)和目标地址(DA))的寄存器712。这些操作数寄存器还可以包括用于存储NAND地址信息和其他数据的操作数寄存器714。如上所述,存储器映射寄存器600还可以包括缓冲器大小信息寄存器616。
在本发明的一个实施例中,缓存空间330可被划分成多个RAM缓冲区[1...n]。通过提供多个RAM缓存区(例如,作为覆盖窗缓冲区、iDMA缓冲区144、或者易失性存储器104中的其他缓冲区的分区),易失性存储器104可被主机102和/或非易失性存储控制器106用来执行在易失性存储器阵列116和/或非易失性存储器108中的不同位置之间的多个数据传输。
指定经由覆盖窗发送的命令的操作数 在本发明的一个实施例中,提供至存储器映射寄存器600的不同op码可使用在控制寄存器空间310内以不同偏移量定位的不同操作数寄存器308、712、714。在一些情况下,放置在op码寄存器702、704、706、708中的命令可指定哪些操作数将与该op码一起使用,从而使得读取该命令的装置(例如,易失性存储器104或非易失性存储控制器106)确定用于给定的命令的操作数被定位的位置。因此,在一些情况下,对于给定的命令可使用不同的定位和操作数大小。
图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。
在易失性存储器阵列与非易失性存储器之间执行数据传输 如上所述,覆盖窗(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中时,当预定量的数据被放置在缓冲器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再次满载,或者直到所指定量的数据已经传输。
如图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可以提供一种指示(例如,一个中断)至iDMA控制器150。
在一些情况下,当DMA传输已经通过非易失性存储控制器106进行时,非易失性存储控制器106可以通过易失性存储器104指示给主机102命令已经完成。该指示可以通过非易失性存储控制器106进行,例如,通过在模式寄存器(mode register)170的一个中或者存储器映射寄存器138、140、142的一个中设置状态寄存器位。状态位可以通过主机102轮询以确定何时命令已经完成。可选地,在收到来自非易失性存储控制器106的命令之后或者通过非易失性存储控制器106进行状态位设置之后,易失性存储器104可以发送一个中断至主机102以指示DMA传输已经完成。
在一些情况下,在DMA传输涉及(involving)易失性存储器阵列116期间,主机102可以试图同时存取易失性存储器阵列116以及非易失性存储控制器106或iDMA缓冲控制器148。在这种情况下,主机易失性存储器访问控制器(Host volatile memory accesscontrol)160和iDMA易失性存储器访问控制器162可以确定所进行的存取。在一个实施例中,通过主机102对易失性存储器阵列116的存取可以优先于经由iDMA易失性存储器访问控制器162进行的存取。在一些情况下,当在多时钟周期(multiple clock cycle)中进行存取时,通过主机102进行的存取可被覆盖,并从而中断经由iDMA易失性存储器访问控制器162进行的存取。可选地,无论哪个存取被首先启动都可被给予优先序。另外,在iDMA缓冲控制器148正在进行DMA传输时,DMA传输可以暂停以便允许主机102访问易失性存储器阵列116。在主机102访问易失性存储器阵列116之后,然后可以再次进行DMA传输。
在本发明的一个实施例中,对易失性存储器阵列116的多路存取(multiple access)可以并行进行。例如,如果由主机102进行的存取存取了易失性存储器阵列116中的第一存储体(例如,存储体1360)同时由iDMA缓冲控制器148进行的存取存取了第二存储体(例如,存储体1363),那么两个存取可以同时进行而不相互干扰。类似地,当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内的源地址和非易失性存储器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的中断而检测到命令时,非易失性存储控制器106可接收该DMA传输命令。
在接收到该命令之后,由主机102和非易失性存储控制器106执行的步骤可以独立地继续(例如,在非易失性存储控制器106和主机102之间不发送进一步的命令)。在步骤1006中,例如通过经由覆盖窗304检查缓冲器大小信息寄存器616,主机102可检测覆盖窗缓冲器146是否溢出(overflow)。可选地,在本发明的一个实施例中,可向主机102发送一中断,以表示缓冲器146何时为空或者缓冲器146中何时有可用的预定量的空间。如果没有缓存溢出,在步骤1008中,主机102可将数据写缓冲器146。当主机102或非易失性存储控制器106从缓冲器读取数据或向缓冲器传输数据时,在步骤1014中,易失性存储器104可通过例如修改缓冲器大小信息寄存器616中的设置来更新缓存状态。
在步骤1010中,主机102可确定是否还有数据要写非易失性存储器108。如果还有数据要写,在步骤1006中,主机102可继续检查缓冲器146中的空间,并在步骤1008中,当缓冲器146中有可用空间时写缓冲器146。不然的话,在步骤1012中,主机102可继续处理数据。
在主机102将数据放入缓冲器146中的同时,非易失性存储控制器106可监控缓冲器146,并当由主机102放入了数据到缓冲器146中时从其中读出数据。因此,在步骤1018中,非易失性存储控制器106可检查缓冲器146中的数据。该检查可通过例如读取被易失性存储器104更新了的缓冲器大小信息寄存器616来进行。可选地,当数据被放入缓冲器146中后,或者当指定量的数据被放入缓冲器146中后,或者当缓冲器146已满时,可向非易失性存储控制器106发送一中断。如果在步骤1020中非易失性存储控制器106确定缓冲器146中含有数据,控制器106可从缓冲器146读出数据并将数据写非易失性存储器108内的目的地址。可选地,如果缓冲器146中没有数据,在步骤1018中,控制器106可继续检查数据。
当控制器106从缓冲器读取数据时,缓冲器大小信息寄存器616可通过易失性存储器104进行更新。在步骤1024中,控制器106可确定数据传输是否完成。如果数据传输没有完成,在步骤1018中,控制器106可继续检查缓冲器146中的数据。可选地,如果数据传输已经完成,那么在步骤1026中,控制器106可以继续处理数据。在一个实施例中,控制器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执行的步骤可以独立地继续进行(例如,在非易失性存储控制器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可继续处理数据。在一个实施例中,控制器106可通过确定是否已经传输了由DMA传输命令指定的数据量来确定是否还有数据要传输。可选地,控制器106可继续写数据,直到主机102发送命令至控制器106表示传输已经完成。
在控制器106将数据放入缓冲器146中的同时,非易失性存储控制器106可监控缓冲器146,并当由控制器106放入了数据到缓冲器146中时从其中读出数据。因此,在步骤1056中,非易失性存储控制器106可检查缓冲器146中的数据。该检查可通过例如读取被易失性存储器104更新了的缓冲器大小信息寄存器616来进行。可选地,当数据被放入缓冲器146中后,或者当指定量的数据被放入缓冲器146中后,或者当缓冲器146已满时,向主机102发送一中断。如果在步骤1058中主机102确定缓冲器146含有数据,那么主机102可从缓冲器146读出数据。可选地,如果缓冲器146中没有数据,则在步骤1056中,主机102可继续检查数据。
当主机102从缓冲器读取数据时,缓冲器大小信息寄存器616可通过易失性存储器104进行更新。在步骤1062中,主机102可确定数据传输是否完成。如果数据传输没有完成,在步骤1056中,主机102可继续查测缓冲器146中的数据。可选地,如果数据传输已经完成,那么在步骤1064中,主机102可继续处理数据。在一个实施例中,如上所述,主机102可通过确定是否已经传输了指定量的数据来确定数据传输是否完成。可选地,每当主机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的位置进行配制。
图12是描述根据本发明的一个实施例的用于经由镜像控制寄存器1104访问远程控制寄存器158的处理1200的流程图。该处理1200可以从主机102检测用于未决命令的易失性存储器104的步骤1202开始。当该主机102确定没有命令要处理时,该主机102可以通过该易失性存储器104的易失性存储器接口112写数据到镜像控制寄存器地址空间1102。向镜像控制存储器空间1102写的数据可以位于在镜像控制寄存器中1104中。然后,主机102可以在指示镜像控制寄存器1104已被修改的步骤1206中,在易失性存储器104中设置控制寄存器位。可选的,易失性存储器104可以自动确定该镜像控制寄存器1104已被更新。
在步骤1212中,易失性存储器104可以收到镜像控制寄存器1104已被修改的指示。然后,在步骤1214中,易失性存储器104可以指示给非易失性存储器控制器106镜像控制寄存器1104已被修改。通过发布中断给非易失性存储器控制器106或设置状态位,该指示可以提供给非易失性存储器控制器106,其中,该状态位可以通过非易失性存储器控制器106查询。当接收到镜像寄存器1104已被修改的指示后,非易失性存储器控制器106可以在步骤1218中从易失性存储器104内的镜像寄存器1104载入数据,并且在步骤1220中将载入的数据放入控制寄存器158中。
在步骤1222中,非易失性存储器控制器106可以发给易失性存储器104命令来设置控制寄存器位,该控制寄存器位指示远程控制寄存器158已被成功更新。在某些情况下,非易失性存储器控制器106也可以提供来自被放置在易失性存储器104内的镜像控制寄存器1104中的远程控制寄存器158的更新信息的拷贝。在步骤1216中,易失性存储器104可以更新控制寄存器位,该控制寄存器位指示远程控制寄存器158已被更新。主机102可以接收到控制存储器158在步骤1208中已被更新的指示。然后,处理过程1200可以继续步骤1210。
虽然披露了上述有关通过主机102发送的命令执行的镜像,在某些情况下,镜像可以通过易失性存储器104自动执行(例如,通过设定由非易失性存储器控制器106或发布至非易失性存储器控制器106的中断检测的状态寄存器位),例如,每次镜像控制寄存器104被更新。当状态寄存器位或中断被存储器控制器106检测到时,存储器控制器106可以自动将镜像控制寄存器1104载入远程控制寄存器158。可选的,镜像可以通过易失性存储器104在指定间隔执行。
此外,在某些情况下,例如,通过发送命令或写数据到包括来自远程控制寄存器158(位于镜像控制寄存器1104中)的更新数据的易失性存储器104中,由易失性存储器控制器106发起对来自远程控制寄存器158的更新数据的镜像。在一实施例中,非易失性存储器控制器106可以周期性地发起镜像,例如,在指定间隔。在一实施例中,指定间隔可以由主机102通过镜像控制寄存器1104来指定。可选的,每次远程控制寄存器158被修改时,非易失性存储器控制器106均可以更新镜像控制寄存器1104。
在一实施例中,当镜像控制寄存器1104通过非易失性存储106来更新时,易失性存储器104可以提供用于主机102的更新命令。该命令可以通过例如从易失性存储器104发布中断到主机102或设置易失性存储器104内的状态寄存器位来提供,该状态存储器位可以由主机102通过模式寄存器170或通过存储-映射控制寄存器138、140、142来访问(例如,查询)。
结论 虽 然披露了上述有关通过易失性存储器接口访问易失性存储器和非易失性存储器的处理器,本发明的一些实施例也可以用于嵌入系统,在该嵌入系统中,主机处理器通过附加接口访问附加的存储部件(例如,易失性存储器和非易失性存储器)。同样的,虽然披露了上述有关在分离的模具上制造的易失性存储器、非易失性存储器以及非易失性存储器控制器,也可以利用本发明的实施例,其中,在相同的模具上制造独立部件(例如,易失性存储器和非易失性存储器控制器或非易失性存储器和非易失性存储器控制器)。
虽然前述是本发明的实施例,本发明的其他或者另外的实施例可以在不背离它们的基本范围的情况下来设计,它们的范围由权利要求来限定。
权利要求
1.一种经由易失性存储装置访问远程装置中的远程控制寄存器的方法,所述方法包括
通过所述易失性存储装置经由易失性存储接口接收用于更新所述易失性存储装置内的镜像控制寄存器的写命令;以及
将所述镜像控制寄存器从所述易失性存储装置经由第二接口传送至所述远程装置中的所述远程控制寄存器。
2.根据权利要求1所述的方法,其中,所述远程控制寄存器包括通用串行总线(USB)寄存器和高级技术附件(ATA)寄存器中的一种。
3.根据权利要求1所述的方法,进一步包括
通过所述易失性存储装置接收更新命令,其中,响应于接收到所述更新命令,所述镜像控制寄存器被经由所述第二接口传送至所述远程装置。
4.根据权利要求1所述的方法,其中,所述镜像控制寄存器是存储器映射控制寄存器,以及,所述写命令被发送至与所述存储器映射控制寄存器中的一个相对应的地址。
5.根据权利要求1所述的方法,其中,将所述镜像控制寄存器经由第二接口从所述易失性存储装置传送至所述远程装置包括
在所述易失性存储装置中设置表示所述镜像控制寄存器已经被更新的状态位,其中,所述镜像控制寄存器响应于所述状态位被所述远程装置检测到而传送。
6.根据权利要求1所述的方法,其中,将所述镜像控制寄存器经由第二接口从所述易失性存储装置传送至所述远程装置包括
发送中断至所述远程装置,其中,所述镜像控制寄存器响应于所述中断被所述远程装置检测到而传送。
7.一种经由易失性存储装置访问远程装置中的远程控制寄存器的方法,所述方法包括
经由易失性存储器接口向所述易失性存储装置发送写命令,其中,所述写命令更新所述易失性存储装置内的镜像控制寄存器,以及,经过更新的所述镜像控制寄存器经由第二接口从所述易失性存储装置传送至所述远程装置中的所述远程控制寄存器。
8.根据权利要求7所述的方法,其中,所述远程控制寄存器包括通用串行总线(USB)寄存器和高级技术附件(ATA)寄存器中的一种。
9.根据权利要求7所述的方法,其中,所述写命令被发送至所述易失性存储装置内的覆盖窗,其中,所述覆盖窗包括一系列存储地址,其中,所述覆盖窗的大小和基地址可经由所述易失性存储装置中的一个或多个控制寄存器配置。
10.根据权利要求7所述的方法,进一步包括
向所述易失性存储装置发送更新命令,其中,响应于接收到所述更新命令,所述镜像控制寄存器被经由所述第二接口传送至所述远程装置。
11.根据权利要求7所述的方法,其中,所述镜像控制寄存器是存储器映射控制寄存器,以及,所述写命令被发送至与所述存储器映射控制寄存器中的一个相对应的地址。
12.一种存储装置,包括
第一接口;
第二接口;
易失性存储器阵列;
控制电路,被配置为
接收用于更新所述易失性存储装置内的镜像控制寄存器的写命令;以及
将所述镜像控制寄存器经由所述第二接口从所述易失性存储装置传送至远程装置中的控制寄存器。
13.根据权利要求12所述的存储装置,其中,所述远程控制寄存器包括通用串行总线(USB)寄存器和高级技术附件(ATA)寄存器中的一种。
14.根据权利要求12所述的存储装置,其中,所述控制电路被进一步配置为
接收更新命令;以及
响应于接收到所述更新命令,将所述镜像控制寄存器经由所述第二接口传送至所述远程装置。
15.根据权利要求12所述的存储装置,其中,所述镜像控制寄存器是存储器映射控制寄存器,以及,所述写命令包括与所述存储器映射控制寄存器中的一个相对应的地址。
16.根据权利要求12所述的存储装置,其中,将所述镜像控制寄存器经由所述第二接口从所述易失性存储装置传送至所述远程装置包括
在所述易失性存储装置中设置表示所述镜像控制寄存器已经被更新的状态位,其中,所述镜像控制寄存器响应于所述状态位被所述远程装置检测到而传送。
17.根据权利要求12所述的存储装置,其中,将所述镜像控制寄存器经由所述第二接口从所述易失性存储装置传送至所述远程装置包括
发送中断至所述远程装置,其中,所述镜像控制寄存器响应于所述中断被所述远程装置检测到而传送。
18.一种处理器,包括
接口,用于与易失性存储装置进行通信;
控制电路,被配置为
经由所述接口向所述易失性存储装置发送写命令,其中,所述写命令更新所述易失性存储装置内的镜像控制寄存器,以及,经过更新的所述镜像控制寄存器经由第二接口从所述易失性存储装置传送至所述远程装置中的所述远程控制寄存器。
19.根据权利要求18所述的处理器,其中,所述远程控制寄存器包括通用串行总线(USB)寄存器和高级技术附件(ATA)寄存器中的一种。
20.根据权利要求18所述的处理器,其中,所述控制电路被配置为将所述写命令发送至所述易失性存储装置内的覆盖窗,其中,所述覆盖窗包括一系列存储地址,其中,所述覆盖窗的大小和基地址可经由所述易失性存储装置中的一个或多个控制寄存器配置。
21.根据权利要求18所述的处理器,其中,所述控制电路被进一步配置为
向所述易失性存储装置发送更新命令,其中,响应于接收到所述更新命令,所述镜像控制寄存器被所述易失性存储装置经由所述第二接口传送至所述远程装置。
22.根据权利要求18所述的处理器,其中,所述镜像控制寄存器是存储器映射控制寄存器,以及,所述写命令被发送至与所述存储器映射控制寄存器中的一个相对应的地址。
23.一种存储装置,包括
用于连接的第一装置;
用于连接的第二装置;
用于存储的装置;
控制电路,被配置为
接收用于更新所述易失性存储装置内的镜像控制寄存器的写命令;以及
将所述镜像控制寄存器经由所述用于连接的第二装置从所述易失性存储装置传送至远程装置中的控制寄存器。
24.根据权利要求23所述的存储装置,其中,所述远程控制寄存器包括通用串行总线(USB)寄存器和高级技术附件(ATA)寄存器中的一种。
25.根据权利要求23所述的存储装置,其中,所述控制电路被进一步配置为
接收更新命令;以及
响应于接收到所述更新命令,将所述镜像控制寄存器经由所述用于连接的第二装置传送至所述远程装置。
26.根据权利要求23所述的存储装置,其中,所述镜像控制寄存器是存储器映射控制寄存器,以及,所述写命令包括与所述存储器映射控制寄存器中的一个相对应的地址。
27.根据权利要求23所述的存储装置,其中,将所述镜像控制寄存器经由所述用于连接的第二装置从所述易失性存储装置传送至所述远程装置包括
在所述易失性存储装置中设置表示所述镜像控制寄存器已经被更新的状态位,其中,所述镜像控制寄存器响应于所述状态位被所述远程装置检测到而传送。
28.根据权利要求23所述的存储装置,其中,将所述镜像控制寄存器经由所述用于连接的第二装置从所述易失性存储装置传送至所述远程装置包括
发送中断至所述远程装置,其中,所述镜像控制寄存器响应于所述中断被所述远程装置检测到而传送。
全文摘要
本发明的实施例提供了一种用于经由易失性存储装置访问远程装置中的远程控制寄存器的方法、装置和系统。在一个实施例中,所述方法包括通过易失性存储装置经由易失性存储器接口接收用于更新易失性存储装置内的镜像控制寄存器的写命令。该方法还包括将镜像控制寄存器经由第二接口从易失性存储装置传送至远程装置中的远程控制寄存器。在一个实施例中,远程控制寄存器包括通用串行总线(USB)寄存器和高级技术附件(ATA)寄存器中的一种。
文档编号G06F3/06GK101101532SQ20071013653
公开日2008年1月9日 申请日期2007年7月6日 优先权日2006年7月6日
发明者罗姆-申·卡奥 申请人:奇梦达北美公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1