CN101101531A - 用于发送命令的系统和方法 - Google Patents

用于发送命令的系统和方法 Download PDF

Info

Publication number
CN101101531A
CN101101531A CNA2007101293457A CN200710129345A CN101101531A CN 101101531 A CN101101531 A CN 101101531A CN A2007101293457 A CNA2007101293457 A CN A2007101293457A CN 200710129345 A CN200710129345 A CN 200710129345A CN 101101531 A CN101101531 A CN 101101531A
Authority
CN
China
Prior art keywords
order
operand
volatile memory
address
memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CNA2007101293457A
Other languages
English (en)
Inventor
罗姆-申·卡奥
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.)
Qimonda North America Corp
Original Assignee
Qimonda North America Corp
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 Qimonda North America Corp filed Critical Qimonda North America Corp
Publication of CN101101531A publication Critical patent/CN101101531A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1694Configuration of memory controller to different memory types

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)
  • Read Only Memory (AREA)

Abstract

本发明的实施例提供了用于从第一装置向第二装置发送命令的方法、装置以及系统。在一个实施例中,该方法包括通过第一装置接收向第一装置内的存储位置写第二命令的第一命令。第二命令包括命令码、标识第二命令的操作数的操作数偏移量的第一值、和标识第二命令的所述操作数的数目的第二值。该方法还包括向第二装置提供第二命令。在一个实施例中,第二装置使用由第二命令提供的偏移量和数目加载第二命令的操作数。

Description

用于发送命令的系统和方法
相关申请的交叉引用
本申请涉及均于2006年7月6日提交的题为CONTROLPROTOCOL AND SIGNALING IN A NEW MEMORYARCHITECTURE的美国专利申请(序列NO. 11/ 456, 061,律师卷号为 QIMO/0263),题为METHOD FOR ACCESSING ANON-VOLATILE MEMORY VIA VOLATILE MEMORY INTERFACE的美国专利申请(序列NO. 11/ 456, 063,律师卷号为QIMO/0267)以及题为METHOD FOR ACCESSING CONTROL REGISTERS VIA AMEMORY DEVICE的美国专利申请(序列NO. 11/ 456, 067,律师卷号为QIMO/0269),这些相关专利申请中的每个均整体结合于此作为参考。
技术领域
本发明总体上涉及在计算机系统中的访问存储器。
背景技术
许多现代的电子器件例如移动电话、PDA、便携式音乐播放器、电器等通常结合嵌入式计算机系统。嵌入式计算机系统通常包括计算机处理器(称作主机)、非易失性存储器(例如快闪存储器和/或ROM存储器)以及易失性存储器诸如动态随机存取存储器(DRAM)。主机可以包括中央处理器(CPU)、数字式信号处理器(DSP)、微控制器单元(MCU)或直接存储器存取(DMA)数据传输装置。嵌入式系统还可以包括非易失性存储器控制器,该非易失性存储器控制器可以用来控制和/或访问非易失性存储器。
在嵌入式系统中,通常可以比非易失性存储器更快速地访问易失性存储器。因此,例如,通过主机执行的代码可以存储于易失性存储器中并通过主机从该易失性存储器访问。然而,由于易失性存储器通常需要电源来保持其中存储的数据,因此当嵌入式系统被断电时,易失性存储器通常被擦除。因此,当嵌入式系统断电时,通常不需要电源来维持存储数据的非易失性存储器可以用来存储由主机执行的代码。当对嵌入式系统加电时(例如,当嵌入式系统进入复位状态时),通过主机系统使用的代码可以被载入易失性存储器中并通过主机由易失性存储器执行。将存储于非易失性存储器中的代码载入易失性存储器中并执行来自易失性存储器代码的过程可以称作代码映射(code shadowing)。
为了维持嵌入式系统中访问数据的灵活性,可以期望在主机、易失性存储器和非易失性存储器之间以各种方式来传输数据。例如,可以期望在易失性存储器与主机之间、非易失性存储器与主机之间、和易失性存储器与非易失性存储器之间执行数据传送。当维持嵌入式系统中访问数据的灵活性时,也可以期望降低主机和存储系统的组件之间的接口的成本和复杂性。
因此,需要用于嵌入式系统中访问存储器的改进的系统和方法。
发明内容
本发明的实施例提供了用于从第一装置向第二装置发送命令的方法、装置和系统。在一个实施例中,该方法包括通过第一装置接收第一装置内的存储位置写第二命令的第一命令。第二命令包括命令码、标识第二命令的操作数的操作数偏移量的第一值、和标识第二命令的操作数的数目的第二值。该方法还包括向第二装置提供第二命令。在一个实施例中,第二装置使用由第二命令提供的偏移量和数目加载第二命令的操作数。
附图说明
为了可以更详细地理解本发明的上述特征,将结合实施例详细描述本发明以上概括的特征,其中一些实施方式在附图中给出。然而,应当注意,附图仅描述了本发明的典型实施例,因此并不能认为限制其范围,本发明可以允许其它同等效果的实施例。
图1A~图1C是示出了根据本发明实施例的嵌入式系统的方框图;
图2A~图2B是示出了根据本发明实施例的用于配置覆盖窗的处理的流程图;
图3A~图3D是示出了根据本发明一个实施例的覆盖窗配置的外观的框图;
图4是示出了根据本发明一个实施例所发送的用于配置覆盖窗的命令的时序图;
图5A~图5B是示出了根据本发明实施例经由覆盖窗访问数据和发送命令的处理的流程图;
图6~图7是示出了根据本发明实施例的覆盖窗中的控制寄存器和缓冲器的框图;
图8是示出了根据本发明一个实施例的向op码寄存器发送的命令的框图;
图9A~图9D是示出了根据本发明的实施例的嵌入式系统中的数据传送的框图;
图10A~图10B是示出了根据本发明实施例用于在主机和非易失性存储器之间执行DMA传送处理的流程图;
图11是示出了根据本发明一个实施例的经由覆盖窗访问的镜像控制寄存器的框图;以及
图12是示出了根据本发明一个实施例用于镜像控制寄存器数据的处理的流程图。
具体实施方式
本发明的实施例提供了一种用于从第一装置向第二装置发送命令的方法、装置和系统。在一个实施例中,该方法包括通过第一装置接收第一命令,该第一命令向第一装置中的存储位置(location)写第二命令。第二命令包括命令码、标识(identify)用于第二命令操作数的操作数偏移量的第一值、以及标识第二命令的操作数数目的第二值。该方法还包括向该第二装置提供第二命令。在一个实施例中,第二装置利用由第二命令提供的偏移量和数目而载入第二命令的操作数。
嵌入式系统
图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 entries)(其中,每一行项对应于一给定的地址)。
在某些情况下,通过经由易失性存储器接口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发送命令而实施。可选地,对于每一覆盖窗属性(例如,覆盖窗304是否是激活的,基地址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位,在发送的MRS11命令中的地址位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)管脚(pins)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中的同时,非易失性主机102可监控缓冲器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检测用于未处理(pending)命令的易失性存储器104的步骤1202开始。当该主机102确定没有命令要处理时,该主机102可以通过该易失性存储器104的易失性存储器接口112写数据到镜像控制寄存器地址空间1102。向镜像控制存储器空间1102写的数据可以位于在镜像控制寄存器中1104中。然后,主机102可以在指示镜像控制寄存器1104已被修改(modified)的步骤1206中,在易失性存储器104中设置控制寄存器位。可选的,易失性存储器104可以自动确定该镜像控制寄存器1104已被更新。
在步骤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或设置易失性存储器104内的状态寄存器位来提供,该状态存储器位可以由主机102通过模式寄存器170或通过存储-映射控制寄存器138、140、142来访问(例如,查询)。
结论
虽然披露了上述有关通过易失性存储器接口访问易失性存储器和非易失性存储器的处理器,本发明的一些实施例也可以用于嵌入系统,在该嵌入系统中,主机处理器通过附加接口访问附加的存储部件(例如,易失性存储器和非易失性存储器)。同样的,虽然披露了上述有关在分离的模具上制造的易失性存储器、非易失性存储器以及非易失性存储器控制器,也可以利用本发明的实施例,其中,在相同的模具上制造独立部件(例如,易失性存储器和非易失性存储器控制器或非易失性存储器和非易失性存储器控制器)。
虽然前述是本发明的实施例,本发明的其它或者另外的实施例可以在不背离它们的基本范围的情况下来设计,它们的范围由权利要求来限定。

Claims (28)

1.一种用于从第一装置向第二装置发送命令的方法,所述方法包括:
通过所述第一装置接收向所述第一装置内的存储位置写入第二命令的第一命令,其中,所述第二命令包括命令码、标识所述第二命令的操作数的操作数偏移量的第一值、和标识所述第二命令的所述操作数的数目的第二值;以及
向所述第二装置提供所述第二命令,其中,所述第二装置使用由所述第二命令提供的所述偏移量和所述数目加载所述第二命令的所述操作数。
2.根据权利要求1所述的方法,其中,使用由所述第二命令提供的所述偏移量和所述数目加载所述第二命令的所述操作数包括:
确定所述第一装置内的基地址;以及
加载从由所述基地址加所述第一值所表示的偏移地址开始的操作数的所述数目。
3.根据权利要求2所述的方法,其中,所述基地址是所述第一装置内所述第二命令被写入的所述存储位置。
4.根据权利要求1所述的方法,其中,所述第二命令被写入的所述存储位置对应于存储器映射寄存器。
5.根据权利要求1所述的方法,其中,所述存储位置是距离覆盖窗的基地址预定偏移量处的地址,其中,所述覆盖窗包括一系列存储地址,其中,所述覆盖窗的所述基地址经由一个或多个基地址控制寄存器设置。
6.一种用于通过易失性存储装置向远程装置发送命令的方法,所述方法包括:
向所述易失性存储装置发送写命令,其中,所述写命令向所述易失性存储装置内的存储器映射寄存器写入第二命令,其中,所述第二命令包括命令码、标识所述第二命令的操作数的操作数偏移量的第一值、和标识所述第二命令的所述操作数的数目的第二值;以及
向所述易失性存储装置写入所述第二命令的所述操作数,其中,所述操作数被写入对应于所述操作数的所述操作数偏移量和所述数目的所述易失性存储装置内的操作数地址,其中,所述远程装置使用由所述第二命令提供的所述操作数的所述偏移量和所述数1目加载所述第二命令的所述操作数。
7.根据权利要求6所述的方法,进一步包括:
向所述易失性存储装置发送通知命令,其中,响应于接收到所述通知命令,所述易失性存储装置通知所述远程装置已经接收到所述第二命令。
8.根据权利要求7所述的方法,其中,所述易失性存储装置通过设置表示已接收到所述第二命令的状态寄存器位来通知所述远程装置。
9.根据权利要求7所述的方法,其中,所述易失性存储装置通过向所述远程装置发送表示已接收到所述第二命令的中断来通知所述远程装置。
10.根据权利要求6所述的方法,其中,所述存储器映射寄存器和所述操作数地址位于所述易失性存储装置中的覆盖窗内,其中,所述覆盖窗包括一系列存储地址,其中,所述覆盖窗的大小和基地址经由所述易失性存储装置中的控制寄存器配置。
11.根据权利要求6所述的方法,其中,所述操作数地址从由所述偏移量值加上预定基地址表示的操作数基地址开始。
12.根据权利要求11所述的方法,其中,所述预定基地址是所述存储器映射寄存器的地址。
13.一种存储装置,包括:
第一接口;
第二接口;
易失性存储器阵列;
控制电路,被配置为:
经由所述第一接口接收第一命令,其中,所述第一命令向所述存储装置内的存储位置写入第二命令,其中,所述第二命令包括命令码、标识所述第二命令的操作数的操作数偏移量的第一值、和标识所述第二命令的所述操作数的数目的第二值;以及
经由所述第二接口将所述第二命令提供给远程装置,其中,所述远程装置使用由所述第二命令提供的所述偏移量和所述数目经由第二接口加载所述第二命令的所述操作数。
14.根据权利要求13所述的存储装置,其中,从等于由所述第一值加上基地址表示的偏移量地址的第一操作数地址加载所述操作数的所述数目。
15.根据权利要求14所述的存储装置,其中,所述基地址是所述存储装置内所述第二命令被写入的存储位置。
16.根据权利要求13所述的存储装置,其中,所述第二命令被写入的所述存储位置对应于存储器映射寄存器。
17.根据权利要求13所述的存储装置,其中,所述存储位置是距离覆盖窗的基地址预定偏移量处的地址,其中,所述覆盖窗包括一系列存储地址,其中,所述覆盖窗的所述基地址经由一个或多个基地址控制寄存器设置。
18.一种处理器,包括:
接口,用于与易失性存储装置进行通信;
控制电路,被配置为:
向所述易失性存储装置发送写命令,其中,所述写命令向所述易失性存储装置内的存储器映射寄存器写入第二命令,其中,所述第二命令包括命令码、标识所述第二命令的操作数的操作数偏移量的第一值、和标识所述第二命令的所述操作数的数目的第二值;以及
向所述易失性存储装置写入所述第二命令的所述操作数,其中,所述操作数被写入与所述操作数的所述操作数偏移量和所述数目相对应的所述易失性存储装置内的操作数地址,其中,远程装置使用由所述第二命令提供的所述操作数的所述偏移量和所述数目加载所述第二命令的所述操作数。
19.根据权利要求18所述的处理器,其中,所述控制电路被进一步配置为向所述易失性存储装置发送通知命令,其中,响应于接收到所述通知命令,所述易失性存储装置通知所述远程装置已经接收到所述第二命令。
20.根据权利要求18所述的处理器,其中,所述存储器映射寄存器和所述操作数地址位于所述易失性存储装置中的覆盖窗内,其中,所述覆盖窗包括一系列存储地址,其中,所述覆盖窗的大小和基地址经由所述易失性存储装置中的控制寄存器由所述处理器配置。
21.根据权利要求18所述的处理器,其中,所述操作数地址从由所述偏移量值加上预定基地址表示的操作数基地址开始。
22.根据权利要求21所述的处理器,其中,所述预定基地址是所述存储器映射寄存器的地址。
23.一种存储装置,包括:
用于连接的第一装置;
用于连接第二装置;
用于存储的装置;
控制电路,被配置为:
经由所述用于连接的第一装置接收第一命令,其中,所述第一命令向写入所述存储装置内的存储位置写入第二命令,其中,所述第二命令包括命令码、标识所述第二命令的操作数的操作数偏移量的第一值、和标识所述第二命令的所述操作数的数目的第二值;以及
经由所述用于连接的第二装置将所述第二命令提供给远程装置,其中,所述远程装置使用由所述第二命令提供的所述偏移量和所述数目经由第二接口加载所述第二命令的所述操作数。
24.根据权利要求23所述的存储装置,其中,从等于由所述第一值加上基地址表示的偏移量地址的第一操作数地址加载所述操作数的所述数目。
25.根据权利要求24所述的存储装置,其中,所述基地址是所述存储装置内所述第二命令被写入的存储位置。
26.根据权利要求23所述的存储装置,其中,所述第二命令被写入的所述存储位置对应于存储器映射寄存器。
27.根据权利要求23所述的存储装置,其中,所述存储位置是距离覆盖窗的基地址预定偏移量处的地址,其中,所述覆盖窗包括一系列存储地址,其中,所述覆盖窗的所述基地址经由一个或多个基地址控制寄存器设置。
28.一种系统,包括:
易失性存储装置,包括:
易失性存储器接口;
非易失性存储器接口;
控制寄存器;以及
易失性存储器阵列;
非易失性存储控制器,被配置为经由所述非易失性存储器接口访问所述易失性存储器;以及
处理器,被配置为:
经由所述易失性存储器接口向所述易失性存储装置发送写命令,其中,所述写命令向所述易失性存储装置内的所述控制寄存器写入第二命令,其中,所述第二命令包括命令码、标识所述第二命令的操作数的操作数偏移量的第一值、和标识所述第二命令的所述操作数的数目的第二值;以及
经由所述易失性存储器接口将所述第二命令的所述操作数写入所述易失性存储装置,其中,所述操作数被写入与所述操作数的所述操作数偏移量和所述数目相对应的所述易失性存储装置内的操作数地址,其中,远程装置使用由所述第二命令提供的所述操作数的所述偏移量和所述数目加载所述第二命令的所述操作数。
CNA2007101293457A 2006-07-06 2007-07-06 用于发送命令的系统和方法 Pending CN101101531A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/456,064 2006-07-06
US11/456,064 US20080010419A1 (en) 2006-07-06 2006-07-06 System and Method for Issuing Commands

Publications (1)

Publication Number Publication Date
CN101101531A true CN101101531A (zh) 2008-01-09

Family

ID=38920326

Family Applications (1)

Application Number Title Priority Date Filing Date
CNA2007101293457A Pending CN101101531A (zh) 2006-07-06 2007-07-06 用于发送命令的系统和方法

Country Status (3)

Country Link
US (1) US20080010419A1 (zh)
CN (1) CN101101531A (zh)
DE (1) DE102007031265A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106126369A (zh) * 2015-05-07 2016-11-16 爱思开海力士有限公司 存储模块、存储模块的模块控制器及存储模块的操作方法
CN104094560B (zh) * 2012-02-13 2017-03-08 日本电信电话株式会社 帧搜索处理装置和方法
CN110072096A (zh) * 2010-12-13 2019-07-30 诺基亚技术有限公司 用于3d捕获同步的方法和装置

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7490177B2 (en) * 2006-01-23 2009-02-10 Infineon Technologies Ag System method for performing a direct memory access for automatically copying initialization boot code in a new memory architecture
US7451263B2 (en) * 2006-02-08 2008-11-11 Infineon Technologies Ag Shared interface for components in an embedded system
US20080010420A1 (en) * 2006-07-06 2008-01-10 Rom-Shen Kao Method for Accessing Control Registers via a Memory Device
US7441070B2 (en) * 2006-07-06 2008-10-21 Qimonda North America Corp. Method for accessing a non-volatile memory via a volatile memory interface
US20080007569A1 (en) * 2006-07-06 2008-01-10 Rom-Shen Kao Control protocol and signaling in a new memory architecture
US20080147940A1 (en) * 2006-12-18 2008-06-19 Rom-Shen Kao Method and apparatus for controlling a shared bus
US9626127B2 (en) * 2010-07-21 2017-04-18 Nxp Usa, Inc. Integrated circuit device, data storage array system and method therefor
US9690703B1 (en) * 2012-06-27 2017-06-27 Netapp, Inc. Systems and methods providing storage system write elasticity buffers
US9697111B2 (en) * 2012-08-02 2017-07-04 Samsung Electronics Co., Ltd. Method of managing dynamic memory reallocation and device performing the method
US9678681B2 (en) * 2015-06-17 2017-06-13 International Business Machines Corporation Secured multi-tenancy data in cloud-based storage environments

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5359569A (en) * 1991-10-29 1994-10-25 Hitachi Ltd. Semiconductor memory
US6134631A (en) * 1996-08-19 2000-10-17 Hyundai Electronics America, Inc. Non-volatile memory with embedded programmable controller
TWI240864B (en) * 2001-06-13 2005-10-01 Hitachi Ltd Memory device
US20030014687A1 (en) * 2001-07-10 2003-01-16 Grandex International Corporation Nonvolatile memory unit comprising a control circuit and a plurality of partially defective flash memory devices
US7752380B2 (en) * 2003-07-31 2010-07-06 Sandisk Il Ltd SDRAM memory device with an embedded NAND flash controller
US7139909B2 (en) * 2003-10-16 2006-11-21 International Business Machines Corporation Technique for system initial program load or boot-up of electronic devices and systems
DE102004004796B4 (de) * 2004-01-30 2007-11-29 Infineon Technologies Ag Vorrichtung zur Datenübertragung zwischen Speichern
US20060294295A1 (en) * 2005-06-24 2006-12-28 Yukio Fukuzo DRAM chip device well-communicated with flash memory chip and multi-chip package comprising such a device
US7404136B2 (en) * 2005-07-15 2008-07-22 Infineon Technologies Ag Semiconductor memory device including a signal control device and method of operating the same
US7221615B2 (en) * 2005-10-04 2007-05-22 Infineon Technologies Ag Semiconductor memory chip
US7415581B2 (en) * 2005-10-04 2008-08-19 Infineon Technologies Ag Semiconductor memory chip
US7490177B2 (en) * 2006-01-23 2009-02-10 Infineon Technologies Ag System method for performing a direct memory access for automatically copying initialization boot code in a new memory architecture
US7451263B2 (en) * 2006-02-08 2008-11-11 Infineon Technologies Ag Shared interface for components in an embedded system
US7441070B2 (en) * 2006-07-06 2008-10-21 Qimonda North America Corp. Method for accessing a non-volatile memory via a volatile memory interface
US20080007569A1 (en) * 2006-07-06 2008-01-10 Rom-Shen Kao Control protocol and signaling in a new memory architecture
US20080010420A1 (en) * 2006-07-06 2008-01-10 Rom-Shen Kao Method for Accessing Control Registers via a Memory Device

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110072096A (zh) * 2010-12-13 2019-07-30 诺基亚技术有限公司 用于3d捕获同步的方法和装置
US10999568B2 (en) 2010-12-13 2021-05-04 Nokia Technologies Oy Method and apparatus for 3D capture synchronization
CN104094560B (zh) * 2012-02-13 2017-03-08 日本电信电话株式会社 帧搜索处理装置和方法
CN106126369A (zh) * 2015-05-07 2016-11-16 爱思开海力士有限公司 存储模块、存储模块的模块控制器及存储模块的操作方法

Also Published As

Publication number Publication date
DE102007031265A1 (de) 2008-02-14
US20080010419A1 (en) 2008-01-10

Similar Documents

Publication Publication Date Title
CN101101533A (zh) 通过易失性存储器接口访问非易失性存储器的方法
CN101101532A (zh) 经由存储装置访问控制寄存器的方法
CN101101531A (zh) 用于发送命令的系统和方法
JP5043302B2 (ja) 不揮発性メモリを制御するためのコントローラ
CN101101571A (zh) 新存储器结构中的控制协议和信令
TWI391949B (zh) 於共享多埠記憶體裝置中分享與更新記憶庫之方法與裝置
USRE48997E1 (en) Memory system in which extended function can easily be set
US9836391B2 (en) System and method of page buffer operation for memory devices
KR101165429B1 (ko) 반도체 기억장치 및 그 액세스 방법 및 메모리 제어 시스템
US8291211B2 (en) System embedding plural controller sharing nonvolatile memory
KR910005997B1 (ko) 데이타 처리장치에 있어서 오퍼레이팅 시스템 슈퍼바이저 방법 및 장치
KR100508087B1 (ko) 낸드 플래시 메모리를 이용한 부트 시스템 및 그 방법
US7451263B2 (en) Shared interface for components in an embedded system
US8310880B2 (en) Virtual channel support in a nonvolatile memory controller
US20080147940A1 (en) Method and apparatus for controlling a shared bus
EP1387284A2 (en) Computer system with nand flash memory for booting and data storage
US20120254520A1 (en) Non-volatile memory device, a data processing device using the same, and a swapping method used by the data processing and non-volatile memory devices
CN101477453A (zh) 嵌入式系统、用于嵌入式系统的预取模块及其控制方法
CN107257964B (zh) Dram电路、计算机系统和访问dram电路的方法
US8707002B2 (en) Control apparatus
CN109863481A (zh) 用于平台裕度调节和调试的软件模式寄存器访问
JP2503131B2 (ja) プロセツサシステム
CN101546293A (zh) 缓存控制装置、信息处理装置和缓存控制方法
US6549469B2 (en) Semiconductor memory system
US6775718B2 (en) DMA control system enabling flyby transfer to synchronous memory

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication