具有隐式刷新和外部刷新的混合刷新的制作方法

文档序号:14204332阅读:192来源:国知局
具有隐式刷新和外部刷新的混合刷新的制作方法

优先权

本申请是基于2015年9月17日提交的美国临时专利申请no.62/219,763的非临时申请,并且要求该申请的优先权权益。

本描述总体上涉及存储器设备,并且更具体地,本描述涉及存储器设备刷新。

版权通知/许可

本专利文档的公开部分可以包含受版权保护的内容。版权所有者不反对任何人将本专利文档或者本专利公开如其出现在专利商标局的专利文件或记录中那样进行复制,但是另外保留全部任何版权权利。版权通知适用于以下所描述的以及本文附图中的全部数据,并且适用于以下所描述的任意软件:版权2015,2016,英特尔公司,保留全部权利。



背景技术:

在电子设备中普遍使用存储器设备。许多电子设备采用易失性存储器设备,该易失性存储器设备针对低成本提供相对大量的存储空间,并且与旋转型磁盘非易失性存储器选项相比提供对数据的更快的存取。然而,易失性存储器的易失性性质要求对存储器设备进行刷新以保持数据。刷新存储器设备持续占用总存储带宽的大百分比或者存储器控制器与存储器设备之间的命令总线上的带宽。例如,因为刷新命令每3.9微秒(us)(trefi,刷新间隔时间)必须被发送并且每个刷新命令占用210纳秒(ns)(trfc,刷新周期时间或者刷新命令之间的时间)来完成(210ns/3.9us=5.38%),所以8千兆位(gb)lpddr3(低功率双倍速率,版本3)dram(动态随机存取存储器)管芯可以占用总带宽的大约5.38%。在有16gb设备的情况下,可以期望的是trfc值几乎翻倍,这指示未来的存储器设备有在刷新方面消耗更多总带宽(例如,大约10%)的危险。存储器设备在刷新方面使用越多的带宽,则存储器设备针对处理数据存取命令(读取或写入)具有越少的带宽,这可能降低存储器子系统性能。

附图说明

以下描述包括对附图的讨论,该附图具有通过本发明的实施例的实施方式的示例给出的举例示出。应该通过示例而非通过限制性来理解附图。如本文中使用的,可以将对一个或多个“实施例”的引用理解为描述包括在本发明的至少一个实施方式中的特定特征、结构和/或特性。因此,本文中出现的诸如“在一个实施例中”或者“在替代的实施例中”之类的短语描述了本发明的各种实施例和实施方式,并且不必全部指的是相同的实施例。然而,它们也不必是互相排斥的。

图1是具有支持混合刷新的存储器设备的系统的实施例的框图。

图2是其中混合刷新将内部隐式的刷新与外部刷新进行组合的系统的实施例的框图。

图3是示出了可能的混合刷新信令的系统的实施例的框图。

图4a是用于执行混合刷新的过程的实施例的流程图。

图4b是针对存储器控制器的用于监视刷新的过程的实施例的流程图。

图4c是针对存储器设备的用于监视刷新的过程的实施例的流程图。

图5是其中可以实现混合刷新的计算系统的实施例的框图。

图6是其中可以实现混合刷新的移动设备的实施例的框图。

以下是对某些细节和实施方式的描述,该描述包括对附图的描述,所述描述可以描绘以下描述的实施例中的一些或全部,并且讨论本文中呈现的发明概念的其它可能的实施例或者实施方式。

具体实施方式

如本文中描述的,存储器子系统利用由存储器设备响应于激活命令执行的隐式刷新来使得满足针对存储器设备的刷新需求。隐式刷新指的是由存储器设备或者dram(动态随机存取存储器)设备执行的刷新,所述刷新不直接响应于由存储器控制器做出的刷新命令。系统允许外部刷新来弥补隐式刷新的数量与在刷新窗口期间需要的总刷新的最小数量之间的差。刷新窗口指的是作为从一行的一个刷新至该行的另一刷新的最大或者推荐的时间的刷新时间或者刷新时间段(例如,tref)。刷新窗口取决于存储器设备的技术和架构,一些双倍速率(ddr)dram设备具有等于64毫秒(ms)或32ms的tref。tref一般针对系统而指定,并且使行的刷新延迟超出tref可能影响该数据行中的数据的确定性。因此,系统典型地在刷新窗口内对全部行进行刷新。要求的刷新的数量取决于刷新窗口的时间、刷新架构(例如,响应于单个刷新命令对多少行进行刷新)、以及存储器阵列的总的大小或者在刷新窗口期间需要被刷新多少行。

利用隐式刷新与显式刷新命令的组合,系统可以允许由存储器设备做出的内部刷新来满足刷新需求中的至少部分(而不使用显式刷新命令带宽),并且允许响应于来自存储器控制器的特定的刷新命令而进行外部刷新来满足剩余的刷新需求。因此,需要完成的全部刷新可以在刷新窗口内通过隐式内部刷新与外部刷新命令的组合来完成,其中所有刷新操作不需要都依赖外部刷新命令。在一个实施例中,在有隐式刷新的情况下,响应于来自存储器控制器的激活命令,存储器设备在由命令的识别的存储器存储单元指示的一个子组块(sub-bank)中执行激活,并且在不同的子组块中执行刷新。通过组合外部刷新与隐式刷新,存储器子系统可以使能隐式刷新而隐式刷新不引起从存储器设备向存储器控制器的回退或重试情况。

针对隐式刷新的现有的方案要求存储器控制器在存储器设备忙于执行内部刷新时重试事务。重试事务在流水线命令和重放事务方面向存储器控制器增加了许多复杂度。这还通过使命令被重新发送来去抵消带宽节省中的一些。此外,可以理解的是,耦合至存储器控制器的每个存储器设备基于其自己的振荡器而非基于来自存储器控制器的系统定时信号来执行内部刷新。存储器设备振荡器可以在时间上显著变化,尤其是关于彼此在时间上显著变化。当每个存储器设备可以由于执行内部刷新而分离地请求重试时,如果在耦合至存储器控制器的区块(rank)上存在多个存储器设备,则重试的概率增加。

混合刷新可以指的是在激活命令的延迟时间段(例如,trc或者行周期时间)期间隐藏的内部刷新与由存储器控制器进行的外部刷新的组合。在一个实施例中,存储器设备或dram通过使用act(激活命令)作为触发器来执行隐式刷新以在trc窗口中或trc时间段中对一个或多个子组块进行刷新。trc时间段是针对某些存储器设备标准在向dram组块(bank)发出act命令之后所需的延迟,例如为那些基于双倍速率(ddr)技术(例如,ddr4、ddr5、lpddr4、lpddr5、或者扩展、或者其它)的存储器设备标准。可以理解的是,对“刷新窗口”的引用一般指的是刷新之间的时间段(例如,tref)并且周期时间窗口指的是施加在对相同行的存取之间的延迟(例如,trc)。如果dram在刷新窗口内需要与可以通过隐式刷新实现的相比更多的刷新,则存储器控制器或者主机控制器可以经由外部刷新命令来提供额外的刷新需求。在一个实施例中,dram跟踪需要的刷新或者额外的刷新要求,并且将这些要求向主机控制器指示。在一个实施例中,存储器控制器跟踪额外的刷新要求。通过使存储器控制器提供外部刷新来满足额外的刷新要求,系统可以避免使用存储器控制器重试。如本文中描述的,存储器设备不仅仅依赖于内部隐式刷新,并且因此当存储器控制器尝试发送存取命令时,存储器设备不会由于刷新而向存储器控制器发出忙信号。

图1是其中辅助存储器控制器利用高可压缩性标志的存储器子系统的实施例的框图。系统100将处理器和存储器子系统的元件包括在计算设备中。处理器110表示可以执行操作系统(os)和应用的计算平台的处理单元,其可以共同被称为“主机”,其为存储器的用户。os和应用执行引起存储器存取的操作。处理器110可以包括一个或多个分离的处理器。每个分离的处理器可以包括单个处理单元、多核处理单元、或者组合。处理单元可以是诸如cpu(中央处理单元)之类的主要处理器、诸如gpu(图形处理单元)之类的外围处理器、或者组合。存储器存取还可以由诸如网络控制器或者硬盘控制器之类的设备发起。这样的设备可以与一些系统中的处理器集成或者经由总线(例如,快速pci)附接至处理器或者组合。系统100可以实现为soc(片上系统),或者与独立的组件一起实现。

对存储器设备的引用可以应用于不同的存储器类型。存储器设备经常指的是易失性存储器技术。易失性存储器是如果到设备的电力中断则其状态(以及因此存储其上的数据)是不确定的存储器。非易失性存储器指的是即使到设备的电力中断其状态也是确定的存储器。动态易失性存储器需要对存储在设备中的数据进行刷新以维持状态。动态易失性存储器的一个示例包括dram(动态随机存取存储器)或者某些变型,例如,同步dram(sdram)。本文中描述的存储器子系统可以与许多存储器技术兼容,例如,ddr3(双倍速率版本3,最初的由jedec(电子设备工程联合协会)于2007年6月27日发布,当前发布21)、ddr4(ddr版本4,初始规范由jedec于2012年9月公布)、ddr4e(ddr版本4,扩展版本,当前由jedec正在讨论中)、lpddr3(低功率ddr版本3,jesd209-3b,由jedec于2013年8月做出)、lpddr4(低功率双倍速率(lpddr)版本4,jesd209-4,由jedec于2014年8月最初公布)、wio2(宽i/o2(wideio2),jesd229-2,由jedec于2014年8月最初公布)、hbm(高宽带存储器dram,jesd235,由jedec于2013年10月最初公布)、ddr5(ddr版本5,当前由jedec正在讨论中)、lpddr5(当前由jedec正在讨论中)、hbm2(hbm版本2,当前由jedec正在讨论中)、或者其它或者存储器技术的组合、以及基于这样的规范的衍生和扩展的技术。

在一个实施例中,除易失性存储器之外,或者替代易失性存储器,对存储器设备的引用可以指的是即使到设备的电力中断其状态也是确定的非易失性存储器设备。在一个实施例中,非易失性存储器设备是块可寻址存储器设备,例如,nand或者nor技术。因此,存储器设备还可以包括未来一代的非易失性设备,例如,三维交叉点(3dxp)存储器设备、其它字节可寻址非易失性存储器设备、或者使用硫系化物相变材料(例如,硫系化物玻璃)的存储器设备。在一个实施例中,存储器设备可以是或者包括多阈值等级nand闪存、nor闪存、单级或多级相变存储器(pcm)或者具有开关的相变存储器(pcms)、电阻式存储器、纳米线存储器、铁电晶体管随机存取存储器(fetram)、并入忆阻器技术的磁阻式随机存取存储器(mram)存储器、或者自旋转移力矩(stt)-mram、或者以上的任意一个的组合、或者其它存储器。

本文中对“dram”或“dram设备”的引用的描述可以应用于允许随机存取的任意存储器设备,无论是易失性还是非易失性的。存储器设备或者dram可以指的是管芯本身、包括一个或多个管芯的封装的存储器产品、或者两者。可以将非易失性存储器包括在具有需要刷新的易失性存储器的相同的系统中。

存储器控制器120表示系统100的一个或多个存储器控制器电路或者设备。存储器控制器120表示响应于执行由处理器110进行的操作而生成存储器存取命令的控制逻辑。存储器控制器120对一个或多个存储器设备140进行存取。存储器设备140可以是根据以上提及的任意一个的dram设备。在一个实施例中,将存储器设备140作为不同的通道来组织和管理,其中每个通道耦合至总线和信号线,该总线和信号线并行地耦合至多个存储器设备。每个通道可独立操作。因此,独立地对每个通道进行存取和控制,并且定时、数据传送、命令和地址交换、以及其它操作针对每个通道是分离的。如本文中使用的,耦合可以指的是电耦合、通信耦合、物理耦合、或者这些的组合。物理耦合可以包括直接接触。电耦合包括允许组件之间的电流或者允许有组件之间的信令或者两者的接口或互连。通信耦合包括使组件能够交换数据的连接,包括有线或无线的连接。

在一个实施例中,针对每个通道的设置由分离的模式寄存器或者其它寄存器设置来控制。在一个实施例中,虽然系统100能够被配置为具有由单个控制器管理的多个通道或者在单个通道上具有多个控制器,但是每个存储器控制器120管理分离的存储器通道。在一个实施例中,存储器控制器120是主机处理器110的部分,例如在相同管芯上实现的或者在与处理器相同的封装空间中实现的逻辑。

存储器控制器120包括用于耦合至存储器总线的i/o接口逻辑122,例如,以上提到的存储器通道。i/o接口逻辑122(以及存储器设备140的i/o接口逻辑142)可以包括引脚、焊盘、连接器、信号线、迹线、或者导线、或者用于连接设备的其它硬件、或者这些的组合。i/o接口逻辑122可以包括硬件接口。如示出的,i/o接口逻辑122至少包括针对信号线的驱动器/收发机。通常,集成电路接口内的导线与焊盘、引脚、或者连接器耦合以接合设备之间的信号线或者迹线或者其它导线。i/o接口逻辑122可以包括用于在设备之间的信号线上交换信号的驱动器、接收机、收发机、或者终端、或者其它电路或电路的组合。信号的交换包括发送或接收中的至少一个。虽然示出为将i/o122从存储器控制器120耦合至存储器设备140的i/o142,但是可以理解的是,在其中存储器设备140的分组被并行地存取的系统100的实施方式中,多个存储器设备可以包括到存储器控制器120的相同接口的i/o接口。在包括一个或多个存储器模块170的系统100的实施方式中,i/o142可以包括除存储器设备本身上的接口硬件之外的存储器模块的接口硬件。其它存储器控制器120包括到其它存储器设备140的分离的接口。

存储器控制器120与存储器设备140之间的总线可以实现为将存储器控制器120耦合至存储器设备140的多个信号线。总线典型地可以至少包括时钟(clk)132、命令/地址(cmd)134以及写入数据(dq)和读取dq136、以及零个或更多个其它信号线138。在一个实施例中,存储器控制器120与存储器之间的总线或连接被称为存储器总线。用于cmd的信号线可以被称为“c/a总线”(或者add/cmd总线,或者指示命令(c或cmd)和地址(a或add)信息的转移的一些其它设计)并且针对写入和读取dq的信号线可以被称为“数据总线”。在一个实施例中,独立的通道具有不同的时钟信号、c/a总线、数据总线以及其它信号总线。因此,系统100可以被认为具有多个“总线”,就该意义而言,独立的接口路径可以被认为是分离的总线。可以理解的是,除明确示出的线之外,总线可以包括选通信令线、警报线、辅助线、或者其它信号线或者组合中的至少一个。还可以理解的是,串行总线技术可以用于存储器控制器120与存储器设备140之间的连接。串行总线技术的示例为通过每个方向上的信号的单个差分对利用嵌入式时钟来对高速数据进行8b10b编码和传输。

可以理解的是,在系统100的示例中,存储器控制器120与存储器设备140之间的总线包括次要命令总线cmd134和用于携带写入和读取数据的次要总线dq136。在一个实施例中,数据总线可以包括用于读取数据和用于写入/命令数据的双向线。在另一实施例中,次要总线dq136可以包括用于从主机向存储器写入的单向写入信号线,并且可以包括用于将数据从存储器向主机读取的单向线。根据选择的存储器技术和系统设计,总线可以伴有其它信号138,例如,选通线dqs。如果设计支持多个实施方式,则基于系统100的设计或者实施方式,数据总线可以具有每存储器设备140更多或更少的带宽。例如,数据总线可以支持具有a×32接口、a×16接口、a×8接口或者其它接口的存储器设备。约定“×w”表示用于与存储器控制器120交换数据的信号的数量,其中,w是二进制整数,其指示存储器设备140的接口大小或者存储器设备140的接口的宽度。存储器设备的接口大小是关于系统100中的每通道可以并发地使用多少存储器设备的控制因数,或者关于有多少存储器设备可以并行地耦合至相同的信号线的控制因数。

存储器设备140表示用于系统100的存储器资源。在一个实施例中,每个存储器设备140是分离的存储器管芯。在一个实施例中,每个存储器设备140可以每设备或管芯与多个(例如,2)通道进行接合。每个存储器设备140包括i/o接口逻辑142,其具有通过设备的实现来确定的带宽(例如,×16或者×8或者一些其它接口带宽)。i/o接口逻辑142使存储器设备能够与存储器控制器120进行接合。i/o接口逻辑142可以包括硬件接口,并且可以是根据存储器控制器的i/o122的,但是在存储器设备末端。在一个实施例中,多个存储器设备140并行地连接至相同的命令总线和数据总线。在另一实施例中,多个存储器设备140并行地连接至相同的命令总线,并且连接至不同的数据总线。例如,系统100可以被配置具有并行耦合的多个存储器设备140,每个存储器设备响应于命令,并且对每个存储器内部设备的存储器资源160进行存取。对于写入操作,单独的存储器设备140可以写入整个数据字的部分,并且对于读取操作,单独的存储器设备140可以取回整个数据字的部分。

在一个实施例中,将存储器控制器140直接设置在计算设备的主板或者主机系统平台上(例如,将处理器110设置其上的pcb(印刷电路板))。在一个实施例中,可以将存储器设备140组织成存储器模块170。在一个实施例中,存储器模块170表示双列直插式存储器模块(dimm)。在一个实施例中,存储器模块170表示用于共享存取或控制电路的至少部分的多个存储器设备的其它组织,该组织可以是与主机系统平台分离的电路、分离的设备、或者分离的板。存储器模块170可以包括多个存储器设备140,并且存储器模块可以包括对到设置在通道上的所包括的存储器设备的多个分离通道的支持。在另一实施例中,存储器设备140可以例如通过诸如多芯片模块(mcm)、堆叠封装、通过硅通孔(tsv)之类的技术或者其它技术来并入与存储器控制器120相同的封装。相似地,在另一实施例中,多个存储器设备140可以并入存储器模块170,该存储器模块本身可以并入与存储器控制器120相同的封装。可以认识到的是,对于这些和其它实施例,存储器控制器120可以是主机处理器110的部分。

存储器设备140每个包括存储器资源160。存储器资源160表示数据的存储器存储单元或存储位置的单独阵列。典型地,将存储器资源160作为数据行来管理,经由字线(行)和位线(行内的单独位)控制来存取。可以将存储器资源160组织为分离的存储器的通道、区块以及组块。通道可以指的是到存储器设备140内的存储位置的独立的控制路径。区块可以指的是跨多个存储器设备的公共位置(例如,不同设备内的相同行地址)。组块可以指的是存储器设备140内的存储器存储单元的阵列。在一个实施例中,存储器的组块可以分成子组块,共享电路(例如,驱动器、信号线、控制逻辑)的至少部分用于所述子组块。可以理解的是,通道、区块、组块、子组块、或者存储器存储单元的其它组织、或者组织的组合可以在其向物理资源的应用方面重叠。例如,相同的物理位置作为可以属于区块的特定的组块可以通过特定的通道进行存取。因此,将以包括性的而不是排除性的方式来理解存储器资源的组织。

在一个实施例中,存储器设备140包括一个或多个寄存器144。寄存器144表示提供针对存储器设备的操作的配置或设置的一个或多个存储设备或者存储位置。在一个实施例中,寄存器144可以提供存储器设备140的存储位置以存储作为控制或管理操作的部分由存储器控制器120存取的数据。在一个实施例中,寄存器144包括一个或多个模式寄存器。在一个实施例中,寄存器144包括一个或多个多目的寄存器。在寄存器144内对位置的配置可以将存储器设备140配置为以不同“模式”进行操作,其中命令信息可以基于该模式而在存储器设备140内触发不同的操作。额外地或替代地,不同的模式还可以取决于模式触发来自地址信息或者其它信息号线的不同操作。对寄存器144的设置可以指示针对i/o设置(例如,定时、终止或者odt(管芯上终止)146、驱动器配置、或者其它i/o设置)的配置。

在一个实施例中,存储器设备140包括odt146作为与i/o142相关联的接口硬件的部分。odt146可以如以上提及的进行配置,并且提供对阻抗的设置,该阻抗应用于到指定的信号线的接口。odt设置可以基于存储器设备是存取操作的选择的目标还是非目标设备而改变。odt146设置可以影响终止线上的信令的定时和反射。通过odt146的精心控制可以使能更高速的操作,提高了对应用的阻抗与负载的匹配。odt146可以应用于i/o接口142、122的特定的信号线并且不必应用于全部信号线。

存储器设备140包括控制器150,其表示用于控制存储器设备内的内部操作的存储器设备内的控制逻辑。例如,控制器150对由存储器控制器120发送的命令进行解码,并且生成内部操作以执行或满足命令。控制器150可以被称为内部控制器,并且与主机的存储器控制器120分离。控制器150可以基于寄存器144确定选择什么模式,并且基于选择的模式来配置用于对存储器资源160进行存取的操作或者其它操作的内部执行。控制器150生成控制信号来控制对存储器设备140内的位的路由以针对选择的模式提供恰当的接口并且将命令指向恰当的存储器存储单元或地址。

再次提及存储器控制器120,存储器控制器120包括调度器130,其表示用于生成事务和并且对其进行排序以发送至存储器设备140的逻辑或电路。从一个角度而言,存储器控制器120的主要功能可以称为调度对存储器设备140的存储器存取和其它事务。这样的调度可以包括生成事务本身以实现由处理器110进行的针对数据的请求并且维持数据的完整性(例如,与刷新有关的命令)。事务可以包括一个或多个命令,并且产生在诸如时钟周期或单元间隔之类的一个或多个定时周期上命令或数据或两者的传送。事务可以用于存取,例如,读取或写入或相关的命令或组合,并且其它事务可以包括针对配置、设置、数据完整性、或者其它命令或组合的存储器管理命令。

存储器控制器120包括用于允许对事务进行选择和排序以提高系统100的性能的逻辑。因此,存储器控制器120可以选择应该将显著的事务中的哪些以何顺序发送至存储器设备140,这典型地利用与简单的先进先出算法相比更加复杂的逻辑来完成。存储器控制器120管理到存储器设备140的事务的传输,并且管理与事务相关联的定时。在一个实施例中,事务具有确定性的定时,该定时可以由存储器控制器120管理并且用于确定如何调度事务。

再次提及存储器控制器120,存储器控制器120包括命令(cmd)逻辑124,其表示用于生成命令以发送至存储器设备140的逻辑或电路。命令的生成可以指的是在调度之前的命令,或者对已准备好发送的入队的命令的准备。一般而言,存储器子系统中的信令包括命令内的或者伴随命令的地址信息,该地址信息用于指示或选择存储器设备应该在其中执行命令的一个或多个存储器存储单元。在一个实施例中,控制器150包括命令逻辑152,其用于对经由i/o142从存储器控制器120接收到的命令和地址信息进行接收和解码。基于接收到的命令和地址信息,控制器150可以控制存储器设备140内的逻辑和电路的操作的定时来执行命令。控制器150负责将定时和操作遵循在存储器设备140内部的标准或规范。存储器控制器120可以通过存取调度和控制来实现遵循标准或规范。

在一个实施例中,存储器控制器120包括刷新(ref)逻辑126。刷新逻辑126可以用于是易失性并且需要刷新来保持确定的状态的存储器资源。在一个实施例中,刷新逻辑126指示刷新的位置以及要执行的刷新的类型。刷新逻辑126可以触发存储器设备140内的自刷新,和/或通过发送刷新命令来执行外部刷新。例如,在一个实施例中,系统100支持全部组块刷新和每组块刷新。全部组块刷新引起对并行耦合的全部存储器设备140内的选择的组块的刷新。每组块刷新引起对指定存储器设备140内的指定的组块的刷新。在一个实施例中,存储器设备140内的控制器150包括用于在存储器设备140内应用刷新的刷新逻辑154。在一个实施例中,刷新逻辑154生成内部操作,以根据从存储器控制器120接收到的外部刷新来执行刷新。刷新逻辑154可以确定刷新是否指向存储器设备140,以及响应于命令刷新什么存储器资源160。

在一个实施例中,系统100支持混合刷新。在混合刷新中,存储器设备140执行向存储器控制器120隐藏的内部刷新。隐式刷新为不是响应于外部刷新命令但响应于另一命令而执行的刷新。可以理解的是,通过存储器控制器120将存储器设备140置于自刷新模式或自刷新状态,甚至自刷新也是响应于外部刷新命令而执行的刷新命令。隐式刷新是在发起对命令的执行之后等待定义的时间窗口时的延迟时间段中由存储器设备140执行的刷新。例如,激活命令具有定义的时间窗口,在该时间窗口中,包含执行激活命令的存储器存储单元的组块对其它外部命令不可用。在一个实施例中,当一个子组块的存储器存储单元由存储器控制器120利用激活命令存取时,刷新逻辑154触发对不同子组块的存储器存储单元的刷新。因此,存储器控制器120的cmd逻辑124可以生成例如激活命令并且将其发送至存储器设备140。响应于激活命令,存储器设备140的控制器150可以使cmd逻辑152引起在指定的组块处对激活命令的执行,并且使刷新逻辑154引起在不同组块处对刷新命令的执行。

替代的隐式刷新方案包括要求回退或重试的机制,在该机制中,执行内部刷新的存储器设备可以向存储器控制器指示该存储器设备不可用,要求存储器控制器对事务进行重试。在区块上有多个存储器设备(例如,4个或8个dram)的情况下,内部刷新可以容易变为不同步,这是因为每个存储器设备依赖于内部振荡器(未具体地示出)以用于内部刷新。如果区块上的任意存储器设备可以在任意时间请求重试,则对存储器控制器而言复杂度是显著的。此外,某些存储器设备可以执行命令,并且其它存储器设备请求重试,这增加了复杂度。本文中描述的混合刷新能够使用隐式刷新而不触发对事务的重试。

在隐式刷新中,组块是开放的,例如响应于每个激活命令针对trc,并且可以在trc窗口期间对组块内的不同子组块执行刷新。在一个实施例中,在混合刷新中,系统100跟踪除内部、隐式刷新之外需要多少外部刷新来满足针对组块的最小刷新要求,以及已执行多少其它外部刷新。系统100然后可以执行至少足以满足刷新时间段(例如,tref)内要求的最小数量的刷新的数量的外部刷新。因此,系统100可以允许存储器设备140执行隐式刷新,并且利用足以满足刷新要求的外部刷新来补充隐式刷新。例如,cmd逻辑124可以生成激活命令,并且随后刷新逻辑126可以发送外部刷新命令以弥补未利用隐式刷新而被刷新的无论任何存储器资源。可以理解的是,因为典型地要求激活命令在读取或写入命令之前发出,所以激活命令被专门引用。可以理解的是,其它命令可以是用于隐式刷新的触发器,例如,包括延迟时间段的任意命令,该延迟时间段允许在延迟时间段期间对另一组块或子组块进行存取。

在一个实施例中,存储器控制器120跟踪需要的外部刷新的数量。在一个实施例中,存储器控制器120包括用于跟踪需要的额外刷新的数量的一个或多个计数器128。例如,计数器128可以包括每组块计数器,其用于跟踪发送至特定组块的激活命令的数量。在一个实施例中,计数器128对可能已发送至组块的外部刷新的数量进行计数。在一个实施例中,刷新逻辑126或者存储器控制器120内的其它控制逻辑基于计数器128中累积的激活命令的数量以及不同计数器中累积的外部刷新的数量,确定需要多少额外的外部刷新。在一个实施例中,存储器控制器120不发送任意外部刷新直至确定需要多少额外的外部刷新。

在一个实施例中,存储器设备140跟踪需要的外部刷新的数量。在一个实施例中,存储器设备140包括一个或多个计数器148,其用于跟踪在内部已执行的刷新来确定需要多少外部刷新。在一个实施例中,存储器设备140包括针对每个组块的计数器148,其用于累积针对该组块的刷新。替代地,在一个实施例中,可以将计数器148重置为刷新窗口内需要的刷新的总数量,并且计数器148可以在执行每个刷新时递减。因此,在指定的时间,例如,按照调度,存储器设备140可以向存储器控制器120指示计数器148中剩余的数量,以指示需要多少外部刷新。

在一个实施例中,当存储器设备140跟踪需要的额外刷新的数量时,存储器设备140和存储器控制器120可以参与“刷新握手”或者针对存储器设备的其它类似的机制以向存储器控制器指示外部刷新需求。例如,在一个实施例中,存储器设备140将需要的刷新的数量存储在寄存器144中,并且存储器控制器可以被配置为定期地读取寄存器。可以理解的是,对于具有多个组块的存储器设备,每个组块可以在每个刷新时间段期间处于刷新的不同等级。在一个实施例中,存储器设备140分离地指示每个组块的刷新需求。在一个实施例中,存储器控制器120通过每组块刷新命令(refpb)、全部组块刷新命令(ref)或者组合来满足刷新需求。

存储器设备140包括存储器资源160的多个部分。例如,存储器资源可以包括存储器的多个组块,每个组块具有多个子组块。存储器设备140可以接收存取命令(例如,激活命令),该存取命令指向存储器的部分中的一个部分内的指定的存储器存储单元,并且在指定的存储器存储单元中执行存取命令,并且还在不同部分(例如,第一组块的不同子组块)中的不同位置处执行隐式刷新。存储器控制器120可以针对如下部分提供外部刷新命令,其中,隐式刷新和外部刷新的总数量满足刷新窗口期间针对该部分的总刷新的最小数量。

图2是其中混合刷新将内部隐式刷新与外部刷新进行组合的系统的实施例的框图。系统200提供了存储器子系统的元件的一个示例,并且可以是图1的系统100的元件的示例。控制器210表示存储器控制器或者主机控制器。存储器240表示系统200的一个或多个存储器设备,并且可以例如是一个或多个dram或者其它存储器设备或者一组存储器设备。

在一个实施例中,控制器210包括用于向存储器240发出命令的命令逻辑212。在一个实施例中,控制器210包括存储器240的每组块260的一个或多个每组块计数器222。在一个实施例中,控制器210可以利用计数器222来跟踪满足针对每个组块的最小刷新要求所需要的外部刷新的数量。在一个实施例中,控制器210包括全局计数器224,其表示控制器210内的逻辑,该逻辑用于确定要发出多少全部组块刷新以满足针对存储器240的组块260的最小刷新要求。在一个实施例中,控制器210包括每组块刷新逻辑232,其用于向存储器240发出每组块刷新。在一个实施例中,控制器210包括全部组块刷新逻辑234,其用于向存储器240发出全部组块刷新。控制器210可以使用刷新逻辑232和/或刷新逻辑234来发出外部刷新以满足未通过存储器240内的隐式刷新满足的额外的刷新要求。

存储器240包括命令逻辑242,其表示用于接收和解码来自控制器210的命令的逻辑。命令逻辑242可以是存储器240的管芯上控制器的部分。存储器240包括一个或多个寄存器244,其表示存储器240内的如下存储位置,在该存储位置中,存储器可以存储由控制器210存取的值和/或在该存储位置中,控制器210可以写入作为配置设置的值以控制存储器240的操作。存储器240包括组块260,其表示被管理作为分离的组块、或者存储器地址空间的部分或者分离可寻址区域的存储器资源。在一个实施例中,每个组块260被分成多个子组块。仅通过示例,并非通过限制,组块260示出为具有四个子组块,sub0、sub1、sub2和sub3。可以理解的是,组块260可以包括不同数量的子组块,例如,2、6、8或者其它数字。典型地,子组块的数量是二进制数,但是不必以此为限制。

在一个实施例中,存储器240包括内部刷新逻辑252,其使存储器能够在内部执行刷新。内部刷新可以指的是执行在内部发起的一个或多个刷新操作的存储器设备。命令可以响应于来自控制器210的外部命令,并且不必是外部刷新命令。可以理解的是,响应于外部刷新命令,存储器240执行内部刷新操作。如本文中描述的,在有内部刷新逻辑252的情况下,存储器240将不必基于外部命令来一对一地执行刷新,并且可以响应于接收到一个或多个非刷新命令而执行刷新命令。内部刷新由内部振荡器256控制,该内部振荡器针对区块、通道或dimm上的每个存储器设备是不同的,并且振荡器不能保证处于同步。外部刷新逻辑254表示存储器240内的逻辑,该逻辑用于响应于来自控制器210的外部刷新命令而执行刷新操作。在一个实施例中,存储器240包括一个或多个计数器258,其表示用于使存储器240能够跟踪满足刷新要求所需要的额外刷新的数量的计数器。

在一个实施例中,act命令触发一个或多个子阵列或子组块中的内部刷新。在一个实施例中,每个组块包括多个子阵列。可以在trc或者行周期时间中执行由dram或存储器设备进行的内部刷新。trc窗口指定了从act到对子阵列的另一存取的最小时间。在之前的方案中,仅设想内部刷新为刷新解决方案。无论什么未被满足的刷新作为与act命令并行的隐式刷新的部分都通过使dram变得对由存储器控制器进行的存取不可用的内部刷新满足。因此,可以要求存储器控制器在对存储器设备进行存取之前等待直至dram结束执行内部刷新。然而,这样的不可用在每个dram可以是分离、非确定性不可用时变为显著的问题。代替执行全部刷新作为内部刷新,可以将来自存储器控制器的外部刷新与内部刷新进行组合作为混合刷新技术。

在一个实施例中,存在以下两个一般选项:使用dram生成的刷新和控制器发起的刷新的组合,或者混合刷新选项。两个选项都可以通过混合刷新来满足刷新要求而不要求任何重试或回退机制。一般而言,刷新窗口(例如,固定的64ms或者32ms时间段)中需要的刷新命令的总数量由标准定义,例如,ddr规范或者以上引用的其它存储器标准。在选项1中,存储器控制器跟踪需要的外部刷新的数量。在选项2中,存储器设备跟踪需要的外部刷新的数量。

在一个实施例中,在选项1中,控制器210对发出的act命令的数量进行计数,并且可以针对需要的剩余刷新命令,发出外部刷新命令。在一个实施例中,控制器210基于每组块发出外部刷新。刷新命令的总数量可以基于给定处理节点上的供应方要求而每供应方不同。因为在相邻子阵列之间共享电路,所以相邻子阵列可能极度资源匮乏。在一个实施例中,控制器210可以跟踪需求,并且基于子阵列中的行的数量来保证刷新窗口中的最小数量的刷新命令。在一个实施例中,控制器210可以保证每9*trefi至少有一个刷新命令以确保免行敲打(rowhammerfree)电路不会极度资源匮乏。

在一个实施例中,在选项2中,dram设备跟踪需要的刷新的数量,并且不要求存储器控制器跟踪act命令的数量。在一个实施例中,存储器240可以跟踪响应于act命令而存储器执行或者实施的实际刷新的数量,而不是要求控制器210来跟踪act命令作为用于跟踪刷新的代理。在一个实施例中,存储器240将其需要额外刷新的指示符发送至控制器210。可以将这样的指示符与诸如alert、mr(模式寄存器)读取命令选项或者组合之类的外部信号一起发送。在一个实施例中,模式寄存器内容可以指定某滚动窗口中需要的刷新的数量。在一个实施例中,规范可以规定控制器210读取寄存器的频率以确定发出多少外部刷新。在一个实施例中,模式寄存器可以使用每组块刷新特征来覆盖针对系统的组块或组块组等级粒度。选项2通过允许系统基于过程和温度条件来发出需要的外部或额外刷新,这可以引起从设备到设备或系统到系统的不同或两者,从而允许存储器设备的实施方式中的灵活性。

利用选项1或选项2,控制器210可以发送一数量的外部刷新,并且响应于该发送,存储器240接收和执行该数量的外部刷新,该数量的外部刷新对于满足刷新时间段内的总刷新的最小数量是必需的。在一个实施例中,控制器210可以针对外部刷新命令发送一个或多个每组块刷新。在一个实施例中,控制器210可以针对外部刷新命令而发送一个或多个全部组块刷新。

图3是示出了可能的混合刷新信令的系统的实施例的框图。系统300提供了存储器子系统的元件的一个示例,并且可以根据图2的系统200的一个实施例和/或根据图1的系统100的一个实施例。控制器302表示主机控制器或者存储器控制器。存储器304表示一个或多个存储器设备或者dram。

在一个实施例中,控制器302包括存取逻辑322,其生成到存储器304的act命令324。act324可以指向特定的存储器存储单元,其可以在存储器304的特定的组块和子组块内。在一个实施例中,存储器304的管芯上控制器306对act324进行接收和解码,并且生成用于执行命令的一个或多个内部操作。如示出的,控制器306可以将命令操作路由至适当的目标组块310。典型地,仅有一个组块310是目标组块。虚线示出了基于act324的地址,将命令发送到作为目标组块的组块中的任一个的可能性。在一个实施例中,除生成内部操作来执行act324之外,控制器306还生成一个或多个隐式刷新命令ref326来执行存储器304的不同部分。在一个实施例中,存储器304的不同部分是在act延迟窗口期间目标组块的不同子组块。因此,在一个实施例中,可以将act324与ref326两者发送至相同的组块310,act324指向一个子组块,并且ref326指向不同的子组块。

在一个实施例中,存储器304跟踪针对每个组块310发出的内部ref326命令,并且针对每个组块310单独地确定该组块的额外刷新要求是什么。额外刷新要求在每个组块310内被表示为ref需求332。因为在系统300的操作中向每个组块发出不同数量的act命令,所以ref需求332针对每个组块而不同。在一个实施例中,存储器304向控制器302提供ref需求,例如,通过将值存储在一个或多个寄存器(未具体示出)中以用于由控制器302存取。在一个实施例中,存储器304触发警报信号警报334以向控制器302指示值已准备好要被读取和使用。

在一个实施例中,控制器302响应于由存储器304做出的警报而经由读取寄存器来确定ref需求342。在一个实施例中,控制器302经由在存储器控制器内部跟踪每个组块310需要多少刷新来确定ref需求342。在这样的实施例中,存储器304不必跟踪ref需求332。外部刷新(extref)352表示控制器302内的逻辑,该逻辑用于发出外部刷新以满足ref需求342(响应于内部跟踪)或者ref需求332(响应于由存储器304进行的跟踪)。在一个实施例中,外部刷新逻辑352向组块310发出一个或多个全部组块刷新(all)354,或者一个或多个每组块刷新(pb)356或两者。全部组块刷新354触发全部组块310来执行刷新。每组块刷新356触发单独指定的组块310来执行刷新。隐式ref326的组合,加上all354或pb356或两者的组合应该满足在刷新时间段内针对存储器304的最小刷新要求。因此,控制器302可以发出all354和pb356的组合以弥补针对每个组块的ref326与针对刷新时间段内的刷新要求之间的差。

图4a是用于执行混合刷新的过程的实施例的流程图。过程400描述了用于利用隐式、内部刷新与外部刷新的组合针对存储器的一个或多个组块提供刷新的操作。过程300可以在系统100、200或300中的任意一个内执行。在一个实施例中,存储器设备响应于由存储器控制器发送的激活命令在内部执行隐式刷新。存储器控制器可以发送激活命令作为存储器存取(例如,读取或写入)或者存储器管理操作的部分(402)。当发送激活命令时,存储器控制器可以识别针对命令的目标存储器存储单元(404)。在一个实施例中,如关于图4b在以下更详细地描述的,存储器控制器可以基于存储器控制器向存储器的每个组块或者其它部分发出的激活命令的数量,来跟踪针对组块需要的刷新(406)。

在一个实施例中,响应于接收到激活命令,存储器设备对命令进行解码,包括识别用于命令的执行的目标存储器存储单元(408)。识别目标存储器存储单元可以包括识别与存储器存储单元相关联的组块和子组块。存储器设备的内部控制器生成一个或多个操作以在识别的存储器存储单元处执行激活命令(410)。在一个实施例中,内部控制器还识别不同的存储器存储单元来执行隐式刷新(412),该不同的存储器存储单元例如为相同组块的不同子组块。因此,存储器设备可以识别存储器存储单元来在延迟期间在不同的部分中进行刷新,所述延迟与在目标存储器存储单元中执行激活命令相关联。因为特定的组块基于激活命令已是忙的,所以出于效率而提供对不同子组块的刷新。在一个实施例中,存储器设备内的逻辑针对不同存储器存储单元处的隐式刷新而生成一个或多个操作(414)。在一个实施例中,如关于图4c更具体地描述的,存储器设备可以基于其针对存储器的每个部分生成的隐式刷新的数量,来跟踪组块需要的刷新(416)。

在一个实施例中,存储器子系统,存储器控制器或者存储器设备或者两者,确定是否是在刷新窗口(例如,32ms或64ms)之前完成刷新的时间(418)。在一个实施例中,确定是否是完成刷新的时间可以包括确定仍需要多少刷新,以及要花费多久来完成刷新。因此,在一个实施例中,存储器控制器或者存储器设备或者两者可以基于刷新窗口中所剩的时间量和需要的刷新的数量来进行确定何时外部刷新应该开始被执行。如果不是完成刷新的时间,420“否”分支,则存储器控制器可以继续执行对存储器设备的存储器存取,包括发送激活命令(402)。激活和隐式刷新的数量可以累积直至当需要执行刷新以满足设备的最小要求的时间时。

如果是完成刷新的时间,420“是”分支,则存储器控制或者存储器设备可以取决于哪个跟踪需要的刷新的数量来确定多少外部刷新需要发送到每个组块(422)。在一个实施例中,无论是存储器控制器还是存储器设备计算针对每个组块需要多少刷新,存储器控制器都通过其自己的检测或者通过接收来自存储器设备的指示来确定需要多少刷新。存储器控制器将确定什么类型以及使用每个类型中的多少刷新来完成刷新(424)。在一个实施例中,存储器控制器确定发出每组块刷新(426pb分支)以及发出需要满足每个组块最小数量的数量的每组块刷新(428)。在一个实施例中,存储器控制器确定发出全部组块刷新(428ab分支),并且识别出在存储器设备的组块内具有针对刷新的最高需求的组块(430)。存储器控制器然后可以发出足以满足针对具有最高需求的组块的刷新的最小数量的数量的全部组块刷新。

在一个实施例中,可以操作更智能、更灵活的刷新来满足最小需求。例如,存储器控制器可以识别哪个组块具有最低数量的需要的刷新,而不是以上提到的最高数量。在一个实施例中,存储器控制器发出需要满足具有最低需求的组块的刷新需求的数量的全部组块刷新。但是可以看到的是,其它组块需要更多的刷新,对带宽的高效的使用是将全部组块刷新最低数量的次数。存储器控制器然后可以通过向单独的组块发出每组块刷新来满足对其它组块的需求。每组块和全部组块刷新的其它组合是有可能的。

图4b是针对存储器控制器的用于监视或跟踪刷新需求的过程的实施例的流程图。过程406描述了跟踪针对组块的需要的刷新的存储器控制器的一个实施例的操作,作为图4a的过程400的部分。在一个实施例中,存储器控制器识别激活命令的目标存储器存储单元的组块,包括识别子组块(440)。在一个实施例中,存储器控制器包括用于跟踪激活命令的一个或多个计数器。在一个实施例中,存储器控制器针对每个组块包括至少一个计数器。因此,存储器控制器可以针对每个组块的每个激活命令来对计数器进行递增(442)。

在一个实施例中,存储器控制器至少部分地基于计数器来计算多少外部刷新要被发送到每个组块(444)。在一个实施例中,存储器控制器通过每组块刷新来满足刷新需求。因此,在一个实施例中,存储器控制器发出计算数量的每组块刷新来对每个组块进行刷新(446)。在一个实施例中,存储器控制器通过全部组块刷新来满足刷新需求。因此,在一个实施例中,存储器控制器针对全部组块计算针对刷新的最高需求所需要的全部组块刷新的数量(表示对最低激活命令进行计数)(448)。在一个实施例中,存储器控制器通过全部组块和每组块外部刷新的组合来满足刷新需求。

图4c是针对存储器设备的用于监视或跟踪刷新需求的过程的实施例的流程图。过程416描述了对针对组块的需要的刷新进行跟踪的存储器设备的一个实施例的操作,作为图4a的过程400的部分。在一个实施例中,存储器设备针对执行的每个隐式刷新对刷新计数器进行递增(450)。在一个实施例中,存储器设备基于每个组块的刷新计数器来计算需要多少外部刷新(452)。

在一个实施例中,存储器设备将刷新需求存储为寄存器中的值(454),该寄存器例如为模式寄存器或者多目的寄存器。寄存器可以保持针对每个组块的值。在一个实施例中,存储器设备生成到存储器控制器的警报或者其它指示信号(456)。在一个实施例中,存储器控制器对来自寄存器的计数或者多个计数进行存取并且生成刷新以满足每个组块的刷新需求(458)。在一个实施例中,存储器控制器通过全部组块刷新、每组块刷新或者组合来满足每个组块的刷新需求。

图5是其中可以实现混合刷新的计算系统的实施例的框图。系统500表示根据本文中描述的任意实施例的计算设备,并且可以是膝上型计算机、桌上型计算机、平板计算机、服务器、游戏或娱乐控制系统、扫描仪、复印机、打印机、路由或交换设备、嵌入式计算设备、智能电话、可穿戴设备、物联网设备或者其它电子设备。

系统500包括处理器510,其针对系统500提供对指令的处理、操作管理以及执行。处理器510可以包括用于提供针对系统500的处理的任意类型的微处理器、中央处理单元(cpu)、图形处理单元(gpu)、处理核、或者其它处理硬件或者处理器的组合。处理器510控制系统500的总体操作,并且可以是或者包括一个或多个可编程通用或专用微处理器、数字信号处理器(dsp)、可编程控制器、专用集成电路(asic)、可编程逻辑设备(pld)等、或者这样的设备的组合。

在一个实施例中,系统500包括耦合至处理器510的接口512,该接口可以表示针对需要更高带宽连接的系统组件的更高速的接口或者高吞吐量接口,该系统组件例如为存储器子系统520或者图形接口组件540。接口512可以表示“北桥”电路,其可以是独立组件或者集成到处理器管芯上的。在有图形接口的情况下,图形接口540接合至图形组件以用于向系统500的用户提供视觉显示。在一个实施例中,图形接口540基于存储在存储器530中的数据或者基于由处理器510执行的操作或者基于两者而生成显示。

存储器子系统520表示系统500的主存储器,并且针对要由处理器510执行的代码或者在执行例程中使用的数据值来提供存储。存储器子系统520可以包括一个或多个存储器设备530,例如,只读存储器(rom)、闪存、诸如dram之类的随机存取存储器(ram)的一个或多个变型、或者其它存储器设备、或者这样的设备的组合。存储器530此外存储和托管操作系统(os)532,以提供用于执行系统500中的指令的软件平台。额外地,应用534可以在来自存储器530的os532的软件平台上执行。应用534表示具有用于实施一个或多个功能的执行的其自己操作逻辑的程序。过程536表示向os532或者一个或多个应用534或者组合提供辅助功能的代理或者例程。os532、应用534、以及过程536提供软件逻辑以提供系统500的功能。在一个实施例中,存储器子系统520包括存储器控制器522,其为用于生成命令和向存储器530发出命令的存储器控制器。可以理解的是,存储器控制器522可以是处理器510的物理部分或者接口512的物理部分。例如,存储器控制器522可以是集成到具有处理器510的电路上的集成存储器控制器。

虽然未具体示出,但是可以理解的是,系统500可以包括设备之间的一个或多个总线或总线系统,例如,存储器总线、图形总线、接口总线或者其它。总线或其它信号线可以将组件通信地或电耦合在一起,或者通信和电地一起对组件进行耦合。总线可以包括物理通信线、点对点式连接、桥、适配器、控制器、或者其它电路或者组合。总线可以包括,例如,系统总线、外围组件互连(pci)总线、超传输或工业标准架构(isa)总线、小型计算机系统接口(scsi)总线、通用串行总线(usb)或者电气与电子工程师协会(ieee)标准1394总线(通常被称为“火线”)中的一个或多个。

在一个实施例中,系统500包括接口514,其耦合至接口512。接口514可以是与接口512相比更低速的接口。在一个实施例中,接口514可以是“南桥”电路,其可以包括独立组件和集成电路。在一个实施例中,多个用户接口组件或者外围组件或者两者耦合至接口514。网络接口550向系统500提供用于通过一个或多个网络与远程设备(例如,服务器或者其它计算设备)进行通信的能力。网络接口550可以包括以太网适配器、无线互连组件、蜂窝网络互连组件、usb(通用串行总线)、或者基于其它有线或无线标准的或者专有接口。网络接口550可以与远程设备交换数据,该远程设备可以包括发送存储在存储器中的数据或者接收要被存储在存储器中的数据。

在一个实施例中,系统500包括一个或多个输入/输出(i/o)接口560。i/o接口560可以包括通过其用户与系统500进行交互(例如,音频、字母数字、触觉/触摸、或者其他接合)的一个或多个接口组件。外围接口570可以包括以上未具体提及的任意硬件接口。外围设备一般指的是依赖地连接至系统500的设备。依赖连接是其中系统500提供软件平台或硬件平台或两者的连接,在该软件平台或硬件平台或两者上执行操作并且用户与其进行交互。

在一个实施例中,系统500包括用于以非易失性方式存储数据的存储子系统580。在一个实施例中,在某些系统实施方式中,存储子系统580中的至少某些组件可以与存储器子系统520的组件重叠。存储子系统580包括存储设备584,其可以是或者包括用于以非易失性方式存储大量数据的任意常规的介质,例如,一个或多个磁性、固态或者基于光的磁盘、或者组合。存储装置584以持久性状态保持代码或指令以及数据586(即,即使向系统500的电力中断值也被保留)。存储装置584一般可以被认为是“存储器”,但是存储器530典型地执行或者操作存储器以向处理器510提供指令。而存储装置584是非易失性的,存储器530可以包括易失性存储器(即,如果向系统500的电力中断,则数据的值或状态是不确定的)。在一个实施例中,存储子系统580包括用于与存储装置584进行接合的控制器582。在一个实施例中,控制器582是接口514或处理器510的物理部分,或者可以包括处理器510与接口514两者中的电路或逻辑。

电源502向系统500的组件提供电力。更具体地,电源502典型地与系统502中的一个或多个电源供给504接合以向系统500的组件提供电力。在一个实施例中,电源供给504包括用于插入墙上插座的ac到dc(交流到直流)适配器。这样的ac电力可以是可再生能源(例如,太阳能)电源502。在一个实施例中,电源502包括dc电源,例如,外部的ac到dc变换器。在一个实施例中,电源502或者电力供给504包括用于经由接近充电场来充电的无线充电硬件。在一个实施例中,电源502可以包括内部电池或者燃料电源。

在一个实施例中,系统500包括根据本文中描述的任意实施例的混合刷新逻辑590,其使系统能够经由隐式刷新和外部刷新的组合来满足存储器530内的刷新需求。存储器530或者存储器控制器522或两者可以跟踪由存储器530响应于激活命令而执行的隐式刷新的数量。基于执行的隐式刷新的数量,存储器530或者存储器控制器522或两者可以确定每个组块需要多少刷新来满足刷新窗口内的最小要求。存储器控制器522可以发出外部刷新来满足最小要求。存储器控制器可以发出每组块刷新、全部组块刷新、或两者来刷新组块。

图6是其中可以实现混合刷新的移动设备的实施例的框图。设备600表示移动计算设备,例如,计算平板、移动电话或者智能电话、无线使能的电子阅读器、可穿戴计算设备、物联网设备、或者其它移动设备、或者嵌入式计算设备。可以理解的是,一般地将组件中的某些示出,并且不是这样的设备的全部组件都在设备600中示出。

设备600包括处理器610,其执行设备600的主要处理操作。处理器610可以包括一个或多个物理设备,例如,微处理器、应用处理器、微控制器、可编程逻辑设备、或者其它处理单元。由处理器610执行的处理操作包括对操作平台或操作系统的执行,应用和设备功能在该操作平台或操作系统上被执行。处理操作包括同与人类用户或其它设备的i/o(输入/输出)有关的操作、与电力管理有关的操作、与将设备600连接至另一设备有关的操作、或者组合。处理操作还可以包括与音频i/o、显示i/o或者其它接合或组合有关的操作。处理器610可以执行存储在存储器中的数据。处理器610可以写入或编辑存储在存储器中的数据。

在一个实施例中,系统600包括一个或多个传感器612。传感器612表示到外部传感器的嵌入式传感器或接口或组合。传感器612使系统600能够监视或检测在其中实现系统600的环境或设备的一个或多个情况。传感器612可以包括环境传感器(例如,温度传感器、动作检测器、光检测器、相机、化学传感器(例如,一氧化碳、二氧化碳、或者其它化学传感器))、压力传感器、加速度计、陀螺仪、医用或生理学传感器(例如,生物传感器、心率监视器、或者用于检测生理学属性的其它传感器)、或者其它传感器、或者组合。传感器612还可以包括用于诸如指纹识别系统、面部检测或识别系统、或者检测或识别用户特征的其它系统之类的生物统计系统的传感器。传感器612应该被理解地宽泛,并且不限于可以与系统600一起实现的许多不同类型的传感器。在一个实施例中,一个或多个传感器612经由与处理器610集成在一起的前端电路耦合至处理器610。在一个实施例中,一个或多个传感器612经由系统600的另一组件耦合至处理器610。

在一个实施例中,设备600包括音频子系统620,其表示与向计算设备提供音频功能相关联的硬件(例如,音频硬件和音频电路)和软件(例如,驱动、编解码器)组件。音频功能可以包括扬声器或耳机输出、以及麦克风输入。用于这样的功能的设备可以集成到设备600中,或者连接至设备600。在一个实施例中,用户通过提供由处理器610接收和处理的音频命令与设备600进行交互。

显示子系统630表示提供视觉显示以向用户呈现的硬件(例如,显示设备)和软件组件(例如,驱动)。在一个实施例中,显示器包括用于与计算设备进行交互的用于用户的触觉组件或者触摸元件。显示子系统630包括显示界面632,其包括用于向用户提供显示的特定屏幕或硬件设备。在一个实施例中,显示接口632包括与处理器610(例如,图形处理器)分离的逻辑,该逻辑用于执行与显示有关的至少一些处理。在一个实施例中,显示子系统630包括向用户提供输出和输入两者的触摸屏设备。在一个实施例中,显示子系统630包括向用户提供输出的高清(hd)显示器。高清可以指的是具有大约100ppi(像素每英寸)或更大的像素密度的显示,并且可以包括诸如全hd(例如,1080p)、视网膜显示、4k(超高清或uhd)或其它之类的格式。在一个实施例中,显示子系统630基于存储在存储器中的数据和由处理器610执行的操作来生成显示信息。

i/o控制器640表示同与用户交互有关的硬件设备和软件组件。i/o控制器640可以操作用于管理作为音频子系统620或显示子系统630或两者的部分的硬件。此外,i/o控制器640示出了用于针对连接至设备600的额外设备的连接点,通过该额外设备用户可以与系统进行交互。例如,可以附接至设备600的设备可以包括麦克风设备、扬声器或立体声系统、视频系统或者其他显示系统、键盘或者数字键盘设备、或与特定应用一起使用的i/o设备,例如读卡器、或者其它设备。

如以上提到的,i/o控制器640可以与音频子系统620或显示子系统630或两者进行交互。例如,通过麦克风或其它音频设备的输入可以提供针对设备600的一个或多个应用或功能的输入或命令。另外,代替显示输出或者除了显示输出之外,可以提供音频输出。在另一示例中,如果显示子系统包括触摸屏,则显示设备还用作输入设备,其可以至少部分由i/o控制器640来管理。设备600上还可以存在额外的按钮或开关以提供由i/o控制器640管理的i/o功能。

在一个实施例中,i/o控制器640对设备进行管理,该设备例如为加速度计、相机、光传感器、或者其它环境传感器、陀螺仪、全球定位系统(gps)、或者可以包括在设备600中的其它硬件、或者传感器612。输入可以是直接用户交互的部分,并且向系统提供环境输入以影响系统的操作(例如,过滤噪声、针对亮度检测调整显示、应用相机的闪光灯、或者其它特征)。

在一个实施例中,设备600包括电力管理650,其管理电池电力使用、电池的充电、以及与电力节省操作有关的特征。电力管理650管理来自电源652的电力,该电源向系统600的组件提供电力。在一个实施例中,电源652包括用于插入墙上插座的ac到dc(交流到直流)适配器。这样的ac电力可以是可再生能源(例如,太阳能、基于动作的电力)。在一个实施例中,电源652仅包括dc电,其可以由诸如ac到dc变换器之类的dc电源来提供。在一个实施例中,电源652包括用于经由接近充电场来充电的无线充电硬件。在一个实施例中,电源652可以包括内部电池或燃料电源。

存储器子系统660包括用于将信息存储在设备600中的存储器设备662。存储器子系统660可以包括非易失性(如果向存储器设备的电力中断则状态不改变)或者易失性(如果向存储器设备的电力中断则状态不确定)存储器设备、或者组合。存储器660可以存储应用数据、用户数据、音乐、照片、文档、或其它数据、以及与系统600的应用和功能的执行有关的系统数据(无论是长期的还是暂时的)。在一个实施例中,存储器子系统660包括存储器控制器664(其还可以被认为是系统600的控制的部分,并且可能被认为是处理器610的部分)。存储器控制器664包括用于生成命令和向存储器设备662发出命令的调度器。

连接670包括用于使设备600能够与外部设备进行通信的硬件设备(例如,无线或有线连接器以及通信硬件、或者有线和无线硬件的组合)和软件组件(例如,驱动和协议栈)。外部设备可以是分离的设备,例如,其它计算设备、无线接入点或基站,以及外围设备,例如,耳机、打印机、或者其它设备。在一个实施例中,系统600与外部设备交换数据以用于存储在存储器中或者在显示设备上显示。交换的数据可以包括要被存储在存储器中的数据、或者已存储在存储器中的数据,以对数据进行读取、写入或编辑。

连接670可以包括多个不同类型的连接。概括而言,设备600被示出具有蜂窝连接672和无线连接674。蜂窝连接672一般指的是由无线运营商提供的蜂窝网络连接,例如,经由gsm(全球移动通信系统)或变型或衍生、cdma(码分多址)或变型或衍生、tdma(时分多址)或变型或衍生、lte(长期演进-也被称为“4g”)、或者其它蜂窝服务标准提供的蜂窝网络连接。无线连接674指的是非蜂窝的无线连接,并且可以包括个域网(例如,蓝牙)、局域网(例如,wifi)、或者广域网(例如,wimax)、或者其它无线通信、或者组合。无线通信指的是通过使用调制电磁辐射通过非固态介质来对数据的传送。有线通信通过固态通信介质发生。

外围连接680包括用于建立外围连接的硬件接口和连接器以及软件组件(例如,驱动、协议栈)。可以理解的是,设备600可以是到其它计算设备的外围设备(“到”682),也具有连接至设备600的外围设备(“从”684)。设备600通常具有“对接”连接器,其用于出于例如管理(例如,下载、上传、改变、同步)设备600上的内容之类的目的连接至其它计算设备。此外,对接连接器可以允许设备600连接至某些外围设备,某些外围设备允许设备600控制例如到音视或其它系统的内容输出。

除专有的对接连接器或之前其它专有的连接硬件之外,设备600可以经由公共或基于标准的连接器来建立外围连接680。公共类型可以包括通用串行总线(usb)连接器(其可以包括许多不同硬件接口中的任意一个)、包括迷你显示端口(mdp)的显示端口、高清多媒体接口(hdmi)、火线、或者其它类型。

在一个实施例中,系统600包括根据本文中描述的任意实施例的混合刷新逻辑690,该混合刷新逻辑使系统能够经由隐式刷新与外部刷新的组合来满足存储器662内的刷新需求。存储器662或者存储器控制器664或者两者可以跟踪由存储器662响应于激活命令来执行的隐式刷新的数量。基于执行的隐式刷新的数量,存储器662或者存储器控制器664或者两者可以确定每个组块需要多少刷新来满足刷新窗口内的最小要求。存储器控制器664可以发出外部刷新来满足最小要求。存储器控制器可以发出每组块刷新、全部组块刷新、或者两者来刷新组块。

在一个方面,一种用于在存储器子系统中进行接合的存储器设备,包括:存储器的多个部分中的第一部分;i/o(输入/输出)硬件,其用于耦合至相关联的存储器控制器,并且从存储器控制器接收命令,所述命令包括指向第一部分内的指定的存储器存储单元的激活命令;以及在存储器控制器内部的控制逻辑,其用于响应于接收到激活命令,在第一部分的指定的存储器存储单元处执行激活命令,并且在不同于第一部分的第二部分的存储器存储单元处执行隐式刷新;其中,控制逻辑进一步用于针对第一部分,执行来自存储器控制器的外部刷新,其中隐式刷新和外部刷新的总数量满足在刷新窗口期间针对第一部分的总刷新的最小数量。

在一个实施例中,刷新窗口包括刷新周期时间。在一个实施例中,i/o硬件用于在确定需要多少外部刷新来满足总刷新的最小数量之后,接收满足总刷新的最小数量必需的数量的外部刷新。在一个实施例中,外部刷新包括每组块刷新。在一个实施例中,外部刷新包括全部组块刷新。在一个实施例中,控制逻辑用于确定需要多少外部刷新。在一个实施例中,i/o硬件用于向存储器控制器提供需要的外部刷新的数量的指示。在一个实施例中,进一步包括寄存器,其中,控制逻辑用于将外部刷新的数量存储在寄存器中以用于由存储器控制器存取。在一个实施例中,存储器控制器用于确定需要多少外部刷新。在一个实施例中,存储器控制器用于检测被发送至相应部分的激活命令的数量,并且基于发送至第一部分的激活的数量,来确定针对第一部分为了满足总刷新的最小数量而需要的外部刷新的数量。在一个实施例中,部分包括组块,并且其中,存储器控制器包括每组块计数器,其用于检测发送至相应组块的激活命令的数量,并且基于每组块计数器的最低计数来发送一数量的全部组块刷新。在一个实施例中,第一部分包括存储器的多个组块中的第一组块。在一个实施例中,第一组块包括多个子组块,并且其中,控制逻辑用于在第一组块的不同子组块的存储器存储单元处执行隐式刷新。在一个实施例中,存储器设备包括与基于双倍速率版本5(ddr5)的标准兼容的同步动态随机存取存储器(sdram)设备。在一个实施例中,存储器设备包括与基于低功率双倍速率版本5(lpddr5)的标准兼容的同步动态随机存取存储器(sdram)设备。

在一个方面,一种用于存储器管理的系统,包括:存储器设备,包括多个组块,包括存储器的多个部分中的第一部分;以及控制逻辑;以及存储器控制器,其用于向存储器设备发出命令,包括指向第一部分内的指定的存储器存储单元的激活命令;其中,响应于接收到激活命令,存储器设备的控制逻辑用于在第一部分的指定的存储器存储单元处执行激活命令,并且在不同于第一部分的第二部分中的存储器存储单元处执行隐式刷新;并且其中,控制逻辑进一步用于针对第一部分,执行来自存储器控制器的外部刷新,其中隐式刷新和外部刷新的总数量满足在刷新窗口期间针对第一部分的总刷新的最小数量。

前述系统的系统可以包括前述存储器设备的任意实施例。在一个实施例中,进一步包括以下中的一个或多个:至少一个处理器,其通信地耦合至存储器控制器和存储器设备;显示器,其通信地耦合到至少一个处理器;电池,其用于向系统供电;或者网络接口,其通信地耦合到至少一个处理器。

在一方面,一种用于刷新存储器设备的方法,包括:从存储器控制器接收指向存储器的多个部分的第一部分内的指定的存储器存储单元的激活命令;响应于接收到激活命令,在第一部分的指定的存储器存储单元处执行激活命令,以及在不同于第一部分的第二部分中的存储器存储单元处执行隐式刷新;以及针对第一部分执行来自存储器控制器的外部刷新,其中隐式刷新和外部刷新的总数量满足在刷新窗口期间针对第一部分的总刷新的最小数量。

在一个实施例中,刷新窗口包括刷新周期时间。在一个实施例中,执行外部刷新包括在确定需要多少外部刷新来满足总刷新的最小数量之后,接收满足总刷新的最小数量必需的数量的外部刷新。在一个实施例中,外部刷新包括每组块刷新。在一个实施例中,外部刷新包括全部组块刷新。在一个实施例中,进一步包括:在存储器设备处确定需要多少外部刷新。在一个实施例中,进一步包括:向存储器控制器提供对需要的外部刷新的数量的指示。在一个实施例中,提供指示包括将外部刷新的数量存储在存储器设备上的寄存器中以用于由存储器控制器存取。在一个实施例中,执行外部刷新包括执行由存储器控制器确定的数量的外部刷新。在一个实施例中,进一步包括存储器控制器:检测发送至相应部分的激活命令的数量;并且基于发送至第一部分的激活的数量,确定针对第一部分为了满足总刷新的最小数量而需要的外部刷新的数量。在一个实施例中,部分包括组块,并且其中,存储器控制器包括每组块计数器,其用于检测发送至相应组块的激活命令的数量,其中,存储器控制器基于每组块计数器的最低计数来发送一数量的全部组块刷新。在一个实施例中,第一部分包括存储器的多个组块中的第一组块。在一个实施例中,第一组块包括多个子组块,并且其中,执行隐式刷新包括在第一组块的不同子组块的存储器存储单元处执行隐式刷新。在一个实施例中,存储器设备包括与基于双倍速率版本5(ddr5)的标准兼容的同步动态随机存取存储器(sdram)设备。在一个实施例中,存储器设备包括与基于低功率双倍速率版本5(lpddr5)的标准兼容的同步动态随机存取存储器(sdram)设备。

在一个方面,一种包括计算机可读存储介质的制品,所述计算机可读存储介质具有存储其上的内容,该内容在执行时引起对操作的执行,该操作用于执行根据前述方法的任意实施例的用于刷新存储器设备的方法。在一个方面,一种包括用于执行操作的单元的装置,该操作用于执行根据前述方法的任意实施例的用于刷新存储器设备的方法。

在一个方面,一种用于与存储器设备进行接合的存储器控制器,包括:i/o(输入/输出)硬件,其用于耦合至存储器设备,并且发出命令,其包括指向存储器的多个部分中的第一部分内的指定的存储器存储单元的激活命令,其中,响应于激活命令,存储器设备用于在第一部分的指定的存储器存储单元处执行激活命令,并且在不同于第一部分的第二部分中的存储器存储单元处执行隐式刷新;以及刷新逻辑,其用于针对第一部分向存储器设备发出外部刷新,其中,隐式刷新和外部刷新的总数量满足在刷新窗口期间针对第一部分的总刷新的最小数量。

在一个实施例中,刷新窗口包括刷新周期时间。在一个实施例中,刷新逻辑用于在确定需要多少外部刷新来满足总刷新的最小数量之后,发出满足总刷新的最小数量必需的数量的外部刷新。在一个实施例中,外部刷新包括每组块刷新。在一个实施例中,外部刷新包括全部组块刷新。在一个实施例中,存储器设备用于确定需要多少外部刷新。在一个实施例中,i/o硬件用于接收从存储器设备需要的外部刷新的数量的指示。在一个实施例中,进一步包括:i/o硬件,其用于存取存储器设备的寄存器,其中,存储器设备用于将外部刷新的数量存储在寄存器中。在一个实施例中,刷新逻辑用于确定需要多少外部刷新。在一个实施例中,进一步包括:检测逻辑,其用于检测发出至相应部分的激活命令的数量,并且基于发出至第一部分的激活的数量,来确定针对第一部分为了满足总刷新的最小数量而需要的外部刷新的数量。在一个实施例中,部分包括组块,并且其中,检测逻辑包括每组块计数器,其用于检测发送至相应组块的激活命令的数量,其中,所述刷新逻辑用于基于每组块计数器的最低计数来发出一数量的全部组块刷新。在一个实施例中,第一部分包括存储器的多个组块中的第一组块。在一个实施例中,第一组块包括多个子组块,并且其中,存储器设备用于在第一组块的不同子组块的存储器存储单元处执行隐式刷新。在一个实施例中,存储器设备包括与基于双倍速率版本5(ddr5)的标准兼容的同步动态随机存取存储器(sdram)设备。在一个实施例中,存储器设备包括与基于低功率双倍速率版本5(lpddr5)的标准兼容的同步动态随机存取存储器(sdram)设备。

在一个方面,一种用于存储器管理的系统包括:存储器设备,包括多个组块,包括存储器的多个部分中的第一部分;以及控制逻辑;以及存储器控制器,其用于向存储器设备发出命令,所述命令包括指向第一部分内的指定的存储器存储单元的激活命令;其中,响应于接收到激活命令,存储器设备的控制逻辑用于在第一部分的指定的存储器存储单元处执行激活命令,并且在不同于第一部分的第二部分中的存储器存储单元处执行隐式刷新;并且其中,控制逻辑进一步用于针对第一部分,执行来自存储器控制器的外部刷新,其中隐式刷新和外部刷新的总数量满足在刷新窗口期间针对第一部分的总刷新的最小数量。

前述系统的系统可以包括前述存储器控制器的任意实施例。在一个实施例中,进一步包括以下中的一个或多个:至少一个处理器,其通信地耦合至存储器控制器和存储器设备;显示器,其通信地耦合到至少一个处理器;电池,其用于向系统供电;或者网络接口,其通信地耦合到至少一个处理器。

在一个方面,一种用于与存储器设备进行接合的方法,包括:向存储器设备发出命令,该命令包括指向存储器的多个部分的第一部分内的指定的存储器存储单元的激活命令,其中,响应于激活命令,存储器设备用于在第一部分的指定的存储器存储单元处执行激活命令,并且在不同于第一部分的第二部分中的存储器存储单元处执行隐式刷新;以及针对第一部分向存储器设备发出外部刷新,其中,隐式刷新和外部刷新的总数量满足在刷新窗口期间针对第一部分的总刷新的最小数量。

在一个实施例中,刷新窗口包括刷新周期时间。在一个实施例中,刷新逻辑用于在确定需要多少外部刷新来满足总刷新的最小数量之后,发出满足总刷新的最小数量必需的数量的外部刷新。在一个实施例中,外部刷新包括每组块刷新。在一个实施例中,外部刷新包括全部组块刷新。在一个实施例中,发出外部刷新包括发出由存储器设备确定的数量的外部刷新。在一个实施例中,进一步包括:接收从存储器设备需要的外部刷新的数量的指示。在一个实施例中,进一步包括:对存储器设备的寄存器进行存取,其中,存储器设备用于将外部刷新的数量存储在寄存器中。

在一个实施例中,进一步包括:在存储器控制器处确定需要多少外部刷新。在一个实施例中,在存储器控制器处确定包括:检测向相应部分发出的激活命令的数量;并且基于向第一部分发出的激活的数量,来确定针对第一部分为了满足总刷新的最小数量而需要的外部刷新的数量。在一个实施例中,部分包括组块,并且其中,检测向相应部分发出的激活命令的数量包括利用存储器控制器的每组块计数器,检测发送至相应组块的激活命令的数量,其中发出外部刷新包括基于每组块计数器的最低计数来发出一数量的全部组块刷新。在一个实施例中,第一部分包括存储器的多个组块中的第一组块。在一个实施例中,第一组块包括多个子组块,并且其中,存储器设备用于在第一组块的不同子组块的存储器存储单元处执行隐式刷新。在一个实施例中,存储器设备包括与基于双倍速率版本5(ddr5)的标准兼容的同步动态随机存取存储器(sdram)设备。在一个实施例中,存储器设备包括与基于低功率双倍速率版本5(lpddr5)的标准兼容的同步动态随机存取存储器(sdram)设备。

在一个方面,一种包括计算机可读存储介质的制品,所述计算机可读存储介质具有存储其上的内容,该内容在执行时引起操作的实施以执行根据前述方法的任意实施例的用于刷新存储器设备的方法。在一个方面,一种包括用于实施操作以执行根据前述方法的任意实施例的用于刷新存储器设备的方法的单元的装置。

在一个方面,一种用于存储器管理的系统,包括:存储器设备,包括多个组块,包括具有多个子组块的第一组块;以及控制逻辑;以及存储器控制器,其用于向存储器设备发出命令,该命令包括指向第一组块内的指定的存储器存储单元的激活命令;其中,响应于接收到激活命令,存储器设备的控制逻辑用于在第一组块的指定的存储器存储单元处执行激活命令,并且在第一组块的不同子组块中的存储器存储单元处执行隐式刷新;并且其中,控制逻辑进一步用于针对第一组块,执行来自存储器控制器的外部刷新,其中隐式刷新和外部刷新的总数量满足刷新在窗口期间针对第一组块的总刷新的最小数量。

在一个实施例中,刷新窗口包括刷新周期时间。在一个实施例中,存储器控制器用于在确定需要多少外部刷新来满足总刷新的最小数量之后,发出针对第一组块的满足总刷新的最小数量必需的数量的外部刷新。在一个实施例中,外部刷新包括每组块刷新。在一个实施例中,外部刷新包括全部组块刷新。在一个实施例中,存储器设备的控制逻辑用于确定需要多少外部刷新。在一个实施例中,存储器设备用于向存储器控制器提供对需要的外部刷新的数量的指示。在一个实施例中,存储器设备进一步包括:寄存器,其中,控制逻辑用于将外部刷新的数量存储在寄存器中以用于由存储器控制器存取。在一个实施例中,存储器控制器用于确定需要多少外部刷新。在一个实施例中,存储器控制器用于检测发送至相应组块的激活命令的数量,并且基于发送至第一组块的激活的数量,确定针对第一组块为了满足总刷新的最小数量而需要的外部刷新的数量。在一个实施例中,存储器控制器包括每组块计数器,其用于检测发送至相应组块的激活命令的数量,并且基于每组块计数器的最低计数来发送一数量的全部组块刷新。在一个实施例中,存储器设备包括与基于双倍速率版本5(ddr5)的标准兼容的同步动态随机存取存储器(sdram)设备。在一个实施例中,存储器设备包括与基于低功率双倍速率版本5(lpddr5)的标准兼容的同步动态随机存取存储器(sdram)设备。在一个实施例中,进一步包括以下中的一个或多个:至少一个处理器,其通信地耦合至存储器控制器和存储器设备;显示器,其通信地耦合到至少一个处理器;电池,其用于向系统供电;或者网络接口,其通信地耦合到至少一个处理器。

本文中示出的流程图提供各种过程动作的次序的示例。流程图可以指示由软件或固件例程执行的操作以及物理操作。在一个实施例中,流程图可以示出有限状态机(fsm)的状态,该有限状态机可以以硬件、软件或者组合来实现。虽然以特定的次序或顺序示出,但是除非另外指定,可以修改动作的顺序。因此,可以将示出的实施例仅理解为示例,并且可以以不同的顺序执行过程,并且可以并行地执行一些动作。此外,可以在各种实施例中省略一个或多个动作;因此,不是全部动作在每个实施例中都是必需的。其它过程流是可能的。

至于本文中描述的各种操作或功能,可以将它们描述或定义为软件代码、指令、配置、数据、或组合。内容可以是直接可执行的(“对象”或者“可执行的”形式)、源代码、或者差分码(“增量”或者“补丁”码)。本文中描述的实施例的软件内容可以经由具有存储其上的内容的制品或者经由对通信接口进行操作以经由通信接口发送数据的方法来提供。机器可读存储介质可以使机器执行描述的功能或操作,并且包括将以由机器(例如,计算设备、电子系统等)可存取的形式存储信息的任意机制,该机器可读存储介质例如为可记录/非可记录的介质(例如,只读存储器(rom)、随机存取存储器(ram)、磁盘存储介质、光存储介质、闪存设备等)。通信接口包括接合至硬线、无线、光等介质中的任意一个以与另一设备进行通信的任意机制,该通信接口例如为存储器总线接口、处理器总线接口、互联网连接、磁盘控制器等。通信接口可以通过提供配置参数或者发送信号或者两者以将通信接口准备为提供描述软件内容的数据信号来配置。通信接口可以经由发送至通信接口的一个或多个命令或信号来存取。

本文中描述的各种组件可以是用于执行描述的操作或功能的单元。本文中描述的每个组件包括软件、硬件、或者这些的组合。组件可以实现为软件模块、硬件模块、专用硬件(例如,应用专用硬件、专用集成电路(asic)、数字信号处理器(dsp)等)、嵌入式控制器、硬线电路等。

除本文中描述的内容之外,可以对本发明的公开的实施例和实施方式做出各种修改而不偏离其范围。因此,本文中的示出和示例可以以示出性而非限制性意义来解释。本发明的范围应该仅参照以下权利要求来衡量。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1