专利名称:硬件动态高速缓存电源管理的制作方法
技术领域:
本发明涉及数字系统领域,尤其涉及数字系统中的电源管理。
背景技术:
随着集成电路“芯片”中包含的晶体管数量的不断增加,集成电路中的电源管理的重要性也在不断增加。电源管理对于包括在移动设备(诸如个人数字助理(PDA)、蜂窝电话、智能电话、笔记本计算机、上网本计算机等等)中的集成电路来说是至关重要的。这些移动设备一般依靠电池供电,而降低集成电路功耗可以延长电池寿命。此外,减少功耗可以降低集成电路产热,这可以降低对包括集成电路(不管其是否依靠电池供电)的设备的冷却要求。 时钟选通经常被用于降低集成电路中的动态功耗,禁用时钟到空闲电路从而防止空闲电路中的开关。一些集成电路除了时钟选通外还执行电力选通。使用电力选通,空闲电路接地的路径的电力被中断,将漏电流降低至几乎为O。当电力被选通至一个块并在随后被恢复时,该块能够要求重新初始化。该重新初始化由在系统中处理器上执行的软件处理。
发明内容
在一个实施例中,控制电路被配置为向一个在被断电后正被上电的电路块传送操作,以重新初始化该电路块用于操作。这些操作可被存储在控制电路耦接的存储器(例如寄存器集)中,并且在包括控制电路和电路块的系统中执行的软件可以在电路块断电之前的某一时刻使用这些操作来编程存储器。在一个实施例中,控制电路还可被配置为在电路块正被断电之前将来自存储器的其他操作传送到电路块。因此,即使在系统中的处理器断电(并且因此此时软件是不可执行的)期间,电路块仍可被上电或者断电,而无需为上电/断电事件唤醒处理器。在一个实施例中,电路块可以是耦接到一个或多个处理器的高速缓存,而控制电路可以是将一个或多个外设和/或外设接口控制器耦接到高速缓存的桥接器的一部分。如果处理器被断电并且在一段时间内外设是空闲的(至少在存取存储器方面),则该高速缓存可被断电。高速缓存可以为了外设存储操作而被上电或者用以上电处理器。在一个实施例中,高速缓存控制电路可以被断电,但是高速缓冲存储器可以保持被供电以保留存储在高速缓存中的高速缓存块。
下面的详细说明是参考附图进行的,现在对附图进行简要描述。图I是系统的一个实施例的框图。图2是在更细节的实施例中图I所示系统的一部分的框图。图3是例示一个电源管理器动态断电高速缓存的实施例的操作的流程图。图4是例示一个核心接口单元动态断电高速缓存的实施例的操作的流程图。
图5是例示一个电源管理器动态上电高速缓存的实施例的操作的流程图。图6是例示一个核心接口单元动态上电高速缓存的实施例的操作的流程图。图7是例示高速缓存的动态上电和断电的时序图。图8是例示一个高速缓存构造代码的实施例操作的流程图。图9是计算机可存取存储介质的框图。图10是系统的另一个实施例的框图。虽然本发明容许多种修改和其他形式,但是其具体实施例通过附图的例子示出并且将在这里被详细描述。然而应该理解的是,此处的附图和详细描述并不旨在将本发明限 制为公开的特定形式,但是相反的,本发明覆盖落入由所附权利要求限定的本发明的精神及范围的所有修改、等效方案、以及替换方案。此处使用的标题只是出于组织目的而不非旨在限制说明书的范围。在本申请的全文中,词语“可以/可”是用作可选择的意思(即,意为具有潜在的可能性),而不是强制的意思(即,意为必须)。类似地,词语“包括”意为包含,但并不限于此。各种单元、电路、或其他部件可被描述为“被配置为”执行一个或多个任务。在这种上下文中,“被配置为”是结构的广义叙述,通常意为“具有电路系统用以”在操作期间执行一个或多个任务。因此,单元/电路/部件可以被配置为执行任务,即使单元/电路/部件目前并为打开。一般而言,形成对应于“被配置为”的电路可以包括硬件电路和/或存储有可执行以实现操作的程序指令的存储器。存储器可以包括诸如静态或动态随机存取存储器之类的易失性存储器和/或诸如光盘或磁盘存储、闪存、可编程只读存储器等的非易失性存储器。类似地,为了方便描述,各种单元/电路/部件可以被描述为执行一个或多个任务。这种描述应该被解释为包括短语“被配置为”。单元/电路/部件是被配置为执行一个或多个任务的说法是明确地不旨在援引35U. S. C § 112第六段中对单元/电路/部件的解释。
具体实施例方式下面描述示例性的系统和集成电路,其中2级(L2)高速缓存可以在处理器断电时被上电或者断电,并且桥接器中的控制电路可被配置为执行在上电时初始化高速缓存和/或为高速缓存断电作准备的操作。然而,其他实施例可以在系统中的处理器被断电的时间期间内执行类似的机制以上电/断电任何电路块。该操作可以是配置寄存器写操作(如下针对L2高速缓存所讨论的),或者可以是其他类型的操作,诸如寄存器读操作或可被电路块解释的用于将该电路块的状态改变为上电/断电的命令。一般地,电路块可以包括可执行一个或多个可识别功能的一组相关电路。该相关电路可被称为逻辑电路或逻辑电路系统,因为电路可以对输入执行逻辑操作来产生输出。因为给定电路块中的电路是相关的,它们可以作为一个单元而被上电或断电。在集成电路设计中每个电路块一般地可以被看做是一个单元(例如,被物理地放置于集成电路内作为一个单元)。电路块还可以包括存储电路(诸如各种静态随机访问存储器,或SRAM)和作为逻辑电路一部分的其他存储设备。例如,在实现片上系统(SOC)的集成电路中,SOC的每一个部件可以是单独的电路块。
综述
现在转到图1,示出了系统5的一个实施例的框图。在图I的实施例中,系统5包括耦接到外部存储器12A-12B的集成电路(IC) 10。在该例示实施例中,集成电路10包括中央处理器(CPU)块14,后者包括一个或多个处理器16和2级(L2)高速缓存18。其他实施例可以不包括L2高速缓存18和/或可以包括额外级别的高速缓存。此外,包括多于2个的处理器16以及仅包括一个处理器16的实施例也是可预期的。集成电路10还包括一组一个或多个非实时(NRT)外设20和一组一个或多个实时(RT)外设22。在该例示实施例中,CPU块14耦接到桥接器/直接存储器存取(DMA)控制器30,后者可以耦接到一个或多个外设32A-32C和/或一个或多个外设接口控制器34。在各实施例中,外设32和外设接口控制器34的数量可以是从0到任何期望数量。图I所示的系统5还包括图形单元36,后者包括一个或多个图形控制器,诸如G038A和G138B。在其他实施例中,图形控制器的数量可以逐图形单元地改变并且图形单元的数量也是可以改变的。如图I中所示,系统5包括耦接到一个或多个存储器物理接口电路(PHY) 42A-42B的存储器控制器40。存储器PHY42A-42B被配置为通过集成电路10的引脚来与存储器12A-12B通信。存储器控制器40还包括一组端口 44A-44E。端口 44A-44B分别被耦接到图形控制器38A-38B。CPU块14耦接到端口 44C。NRT外设20和RT外设22分别耦接到端口 44D-44E。在其他实施例中存储器控制器40中所包含的端口的数量是可变的,存储器控制器的数量也是可变的。也就是说,可以存在比图I所示更多或更少的端口。在其他实施例中,与存储器12A-12B相关的存储器PHY 42A-42B的数量可以是I个也可以是多于2个。
一般地,端口可以是存储器控制器40上与一个或多个源通信的通信点。在某些情况下,端口可能专用于一个源(例如,端口 44A-44B可分别专用于图形控制器38A-38B)。在其他情况下,端口可以被多个源共享(例如,处理器16可以共享CPU端口 44C、NRT外设20可以共享NRT端口 44D、以及RT外设22可以共享RT端口 44E)。每个端口 44A-44E被耦接到一个接口来与其各自的代理通信。该接口可以是任何类型的通信介质(例如,总线、点对点互联等等)并且可以实现任何协议。存储器控制器和各个源之间的互联还可以包括任何其他的期望互联,诸如网格、芯片织物上网络、共享总线、点对点互联等等。处理器16可以实现任何指令集架构,并且可被配置为执行由该指令集架构定义的指令。处理器16可以使用任何微架构,包括标量、超标量、流水线的、超流水线的、无序的、有序的、投机性的、非投机性的等等或其组合。处理器16可以包括电路,并且可任选地可使用微编码技术。该处理器16可以包括一个或多个I级高速缓存,并且因此高速缓存18是L2高速缓存。其他实施例可以在处理器16中包括多级高速缓存,并且高速缓存18可以是层级中的低一级。高速缓存18可以使用任何大小和任何配置(组相联、直接映射等)。图形控制器38A-38B可以是任意图形处理电路系统。一般地,图形控制器38A-38B可被配置为渲染要被显示到帧缓冲器的对象。图形控制器38A-38B可以包括图形处理器,后者可以执行图形软件来实现部分或全部的图形操作和/或特定图形操作的硬件加速。硬件加速和软件实现的量可以逐实施例地改变。NRT外设20可以包括任何非实时外设,这些外设出于性能和/或带宽的原因而被设置为独立访问存储器12A-12B。也就是说,由NRT外设20进行的访问独立于CPU块14,并且可以与CPU块存储器操作并行进行。其他外设(诸如外设32A-32C和/或与由外设接口控制器34控制的外设接口耦接的外设)也可以是非实时外设,但也可以不要求独立访问存储器。NRT外设20的各个实施例可以包括视频编码器和解码器、标量电路系统以及图像压缩和/或解压缩电路等。RT外设22可以包括对存储器延迟具有实时需求的任何外设。例如,RT外设可以包括图形处理器和一个或多个显示管。显示管可以包括用于取一个或多个帧并且将这些帧混合以创建显示图像的电路系统。显示管还可以包括一个或多个视频流水线。显示管的结果可以是在显示屏上显示的像素流。像素值可被传送到显示控制器以在显示屏上显示。图像处理器可以接收相机数据并且将该数据处理为图像从而被存储到存储器中。桥接器/DMA控制器30可以包括将(一个或多个)外设32和(一个或多个)外设接口控制器34桥接至存储空间的电路。在该例示实施例中,桥接器/DMA控制器30可以通过CPU块14将来自外设/外设接口控制器的存储操作桥接至存储器控制器40。该CPU块14还可以维持桥接的存储器操作和来自处理器16/L2高速缓存18的存储器操作之间的一致性。L2高速缓存18还可以仲裁该桥接的存储器操作与来自处理器16的要在CPU接口 上传送到CPU端口 44C的存储器操作。该桥接器/DMA控制器30还可以代表外设32和外设接口控制器34提供DMA操作以将数据块传送到存储器和接收来自存储器的数据块。更具体地,DMA控制器可被配置为代表外设32和外设接口控制器34通过存储器控制器40执行对存储器12A-12B的发送和来自其的发送。DMA控制器可以是处理器16可编程的,用以执行DMA操作。例如,DMA控制器可以是经由描述符可编程的。该描述符可以是存储在存储器12A-12B中描述了 DMA传送(诸如源地址和目的地地址、大小等)的数据结构。作为替换,DMA控制器可以是经由DMA控制器(末示出)中的寄存器可编程的。外设32A-32C可以包括任何期望输入/输出设备或者被包括在集成电路10中的其他硬件设备。例如,外设32A-32C可以包括网络外设,诸如一个或多个联网媒体访问控制器(MAC),诸如以太网MAC或无线保真(WiFi)控制器。外设32A-32C内还可以包括含有各种音频处理设备的音频单元。外设32A-32C内还可以包括一个或多个数字信号处理器。外设32A-32C可以包括任何其他期望功能,诸如定时器、片上秘密存储器、加密引擎等,或其任意组合。外设接口控制器34可以包括用于任何类型外设接口的任何控制器。例如,外设接口控制器可以包括各种接口控制器,诸如通用串行总线(USB)控制器、快速外设部件互连(PCIe)控制器、闪存接口、通用输入/输出(I/O)引脚等等。存储器12A-12B可以是任何类型的存储器,诸如动态随机存取存储器(DRAM)、同步DRAM(SDRAM)、双倍数据速率(DDR、DDR2、DDR3等)SDRAM(包括SDRAM的移动版本,如mDDR3等,和/或SDRAM的低功率版本,诸如LPDDR2等)、RAMBUS DRAM (RDRAM)、静态RAM(SRAM)等。一个或多个存储器设备可以耦接到电路板上以形成存储器模块,诸如单列直插存储器模块(SIMM)、双列直插存储器模块(DIMM)等。作为替换,这些设备可以按片上芯片配置(封装上封装配置、或是多芯片模块配置)与集成电路10 —并安装。存储器PHY 42A-42B可以处理到存储器12A-12B的低级物理接口。例如,存储器PHY42A-42B可以负责信号的时序,以适当的时钟同步DRAM存储器等。在一个实施例中,存储器PHY 42A-42B可被配置为锁定提供给集成电路10的时钟并且可以被配置为生成由存储器12使用的时钟。注意到其他实施例可以包括部件的其他组合,包括图I所示部件和/或其他部件的子集或超集。虽然图I示出了给定部件的一个实例,但是其他实施例可以包括给定部件的一个或多个实例。类似地,通过此处的详细描述,可以包括给定部件的一个或多个实例(即便仅示出一个),和/或可以使用仅包括一个实例的实施例(即便示出了多个实例)。L2高速缓存上电/断电现在转到图2,更详细地示出了集成电路10的一部分的一个实施例的框图。具体地,CPU块14和桥接器/DMA控制器30连同电源管理器50 —起被示出。CPU块14包括处理器16和L2高速缓存18。在图2中的实施例中,L2高速缓存18被示例为L2高速缓存控制18A和L2高速缓冲存储器18B。L2高速缓存控制18A可以包括高速缓存控制电路52和一致性控制电路54。高速缓存控制电路52和一致性控制电路54可以各自包括配置寄存器,诸如配置寄存器56A-56D。处理器16耦接到L2高速缓存18A,并且更具体地是耦接到一致性控制电路54。一致性控制电路54可以耦接到高速缓存控制电路52。L2高速缓存控制18A,并且更具体地是高速缓存控制电路52,可以耦接至L2高速缓冲存储器18B。L2高速缓存控制18A还可以耦接到存储器控制器40 (例如,图I中的CPU端口 44C)。电源管理器50可以耦接到L2高速缓存控制18A(例如,图2中的L2电源控制信号)和处理器16 (例如图2中的处理器电源控制信号)。桥接器/DMA控制器30可以包括一致性I/O接口单元(CIF) 58、上电/断电存储器60、以及DMA控制器62。CIF58耦接到上电/断电存储器60、DMA控制器62、L2高速缓存控制18A (并且更具体地是一致性控制电路54)、电源管理器50 (例如,经由图2所示的I/O空闲、PwrUpReq、以及PwrUpAck信号),以及外设32A-32C和/或外设接口控制器34。DMA控制器62还耦接至外设32A-32C和/或外设接口控制器34。在一个实施例中,DMA控制器62和CIF58可以分别耦接至外设32A-32C和/或外设接口控制器34的子集。该子集可以是重叠的(例如,一些外设/外设接口控制器可被配置为通过DMA和通过与CIF58直接通信两者与存储器通信)。其他外设/外设接口控制器可以仅通过DMA或仅通过直接传送到CIF 58的操作来与存储器通信。配置寄存器56A-56D可以由软件编程以控制高速缓存控制电路52和一致性控制电路54的操作的各个方面。一般地,电路块可以实现配置寄存器以允许软件在各种可编程配置之间进行选择。例如,L2高速缓存器18的大小和配置在某个预定义的最大值的范围内是可以选择的。高速缓存的直写/写回操作是可被配置的。一致性模式可以通过配置寄存器56A-56D而被启用和控制。在一些实施例中,只有高速缓存控制电路52包括高速缓存配置寄存器56A-56D或者只有一致性控制电路54包括高速缓存配置寄存器56A-56D。如果L2高速缓存18断电,存储在配置寄存器56A-56D的至少部分寄存器中的配置数据会丢失。为了在L2高速缓存18的断电和随后的上电之后恢复所述配置,可将配置数据存储在上电/断电存储器60中。例如,当软件使用同样在上电时被恢复的值来编程配置寄存器56A-56D时,软件同样可以将该值写入上电/断电存储器60。类似地,在断电之前可能存在配置寄存器写或者其他寄存器写的执行。例如,在断电之前可将同步命令写入寄存器来同步L2高速缓存18 (保证任何重要的存储器操作或其他通信的完成)。CIF 58可被配置为在上电或者断电事件期间读取来自上电/断电存储器60的操作。电源管理器50可被配置为信令上电或者断电事件给CIF 58,并且CIF58可被配置为读取存储器60并将相应事件的操作发送给L2高速缓存18。一旦操作完成,CIF 58可被配置、为将所述完成通信至电源管理器50。作为响应,电源管理器50可以完成上电/断电事件。电源管理器50和CIF 58之间可以实现任何通信。在该例示实施例中,电源管理器50可以使用PwrUpReq信号来信令上电或者断电事件。更具体地,电源管理器50可被配置为断言PwrUpReq信号来指示L2高速缓存18正被上电,并且可被配置为解除对PwrUpReq信号的断言以指示L2高速缓存18正被断电。作为对断言PwrUpReq信号的响应,CIF 58可被配置为读取上电/断电存储器60中被指示为上电操作的任何操作,并且可被配置为将该操作通信至L2高速缓存18。CIF 58可被配置为确定操作完成(例如接收与每个寄存器写操作相对应的写完成),并且CIF 58 可被配置为断言PwrUpAck信号来肯定应答该上电事件。电源管理器50可被配置为响应于对PwrUpAck信号的断言,重新使能与L2高速缓存18的通信。对L2高速缓存18的断电可以包括至少断电高速缓存控制电路52。在一些实施例中,一致性控制电路54也可被断电。在一些实施例中,L2高速缓冲存储器18B可以保持上电,在高速缓存中维持高速缓存状态(例如,来自存储器的各种高速缓存块,高速缓存块的状态,诸如标签、有效性、以及一致性状态等)。作为替换,L2高速缓冲存储器18B还可以作为断电L2高速缓存18的一部分而被断电。作为对上电事件的响应,任何已断电的电路系统/存储器可被再次上电。上电/断电存储器60可以由任何半导体存储来形成。例如,多个寄存器可被设为可由软件读/写。其他实施例可以使用其他形式的存储(例如,随机存取存储器(RAM),诸如静态RAM)。上电/断电存储器60—般地可以包括多个输入。图2中所示的存储器60具有两个示例性的条目。在图示的实施例中,上电/断电存储器60中的每个条目可以包括地址和数据对,在图2中的条目中被例示为A字段和数据字段。地址可以识别要被写入的配置寄存器,而数据可以是要写入配置寄存器的值。地址可以是相对的(例如,该地址可以是相对于与L2高速缓存控制器18A对应的基地址的偏移值,或者更具体地是相对于与一致性控制电路54和/或高速缓存控制电路52对应的基地址的偏移值)。作为替换,该地址可以是可由处理器16在写操作中传送到相应寄存器56A-56D的完整地址。每个条目还可以包括有效位(V)以指示该条目是否存储有效信息。此外,在该实施例中,每个条目还可以包括指示配置寄存器写是在断电期间还是在上电期间执行的断电字段(D)。D字段中的D位被设置以指示断电寄存器写,而清除则指示上电寄存器写。其他实施例可以使用不同的上电和断电存储器,或者可以按已知的方式划分存储器,并且D字段可以不被包括在每个条目中。在一个实施例中,软件可被期望用以在上电/断电存储器60的初始条目中写入断电地址/数据对并在随后的条目中写入上电地址/数据对。在这一实施例中,响应于断电事件,CIF 58可以进行从初始条目开始直到遇到D位被清除的条目的读取操作。CIF 58可以维持对所述条目的指针,并且可以响应于上电事件而开始从所指示的条目读取上电操作(此后该指针可被重置以再次指向初始条目)。虽然上电/断电存储器60可以存储配置寄存器写,但是其他实施例可以存储任何类型的待执行操作(例如,寄存器写、寄存器读、命令等)。因此,L2高速缓存18上电和断电的灵活机制可被支持。该机制可以支持当处理器16断电时给L2高速缓存18上电或断电(并且不需要唤醒处理器16)。此外,因为操作可在存储器60中被编程,所以待执行的操作可被改变并且这些操作的顺序也可被改变。因此,即便操作本身以硬件操作,机制仍是可经软件改变被修正的(如果操作错误的话)。高速缓存控制电路52 —般地可被配置为管理对L2高速缓冲存储器18B的访问。高速缓存控制电路52可以检测高速缓存存取的命中/未命中,初始化未命中的高速缓存填充,管理L2高速缓存18中的替换策略等。一致性控制电路54可以为处理器16的存储器操作和来自CIF58的存储器操作(例如,来自DMA控制器62的DMA操作和/或直接从外设32A-32C和/或外设接口控制器34接收到的其他存储器操作)控制CPU块14中的高速缓存一致性。一致性控制54可以在处理器16中维持用于高速缓存的监听标签,并且为了高速缓存一致性目的还可被配置为生成对高速缓存控制电路52的高速缓存访问以监听L2高速缓冲存储器18B。电源管理器50可被配置为监测处理器16和L2高速缓存18,以及集成电路10 (图2中末示出)内的其他各种活动。电源管理器50可以控制处理器16的电源状态,包括上电和断电处理器16,经由处理器电源控制信号。在各种实施例中,各处理器16可被独立地或者同步地上电或断电。如果L2高速缓存是空闲的,电源管理器50还可以被配置为将L2高速缓存18断电。电源管理器50可以用各种方式检测出L2高速缓存18是空闲的。例如,电源管理器50可以意识到处理器16被断电,并且由此可以预期将不会有来自处理器16的存储器操作。此夕卜,电源管理器50可以检测到桥接器/DMA控制器30空闲,至少是在存储器操作方面。在该例示的实施例中,CIF58可以产生I/O空闲信号。CIF 58可以断言该I/O空闲信号以指示来自外设32A-32C和/或外设接口控制器34的待决存储器操作,包括没有来自DMA控制器62的存储器操作。在一个实施例中,CIF 58可以在向电源管理器50断言I/O空闲信号之前检测到没有连续时钟周期的可编程的数量的存储器操作。在一个实施例中,如果CIF58已断言I/O空闲信号并在随后接收到存储器操作,则CIF 58可被配置为解除对I/O空闲信号的断言。然而,CIF 58可以等待来自电源管理器50的存储器操作能够被传送的指示。该指示可以避免其中电源管理器50在收到该存储器操作之前已经开始断电事件的竞争状态,并由此可以防止向L2高速缓存18传送有可能会作为断电事件的一部分而被丢失的存储器操作。在一个实施例中,电源管理器50可以提供就绪信号(末示出)来指示在I/O空闲信号断言(和解除断言)后L2高速缓存18已经准备好进行存储器操作。继续转到图3-6,示出了例示用于L2高速缓存18上电和断电事件的电源管理器50和CIF 58的一个实施例的操作的流程图。虽然各个块是按便于理解的特定顺序示出的,但是也可以使用其他顺序。块可以在电源管理器50和/或CIF58中的组合逻辑电路系统中并行执行。块、块组合、和/或流程图可以作为整体以流水线经过多个时钟周期。该电源管理器50和/或CIF 58可被配置为实现流程图中例示的操作。更具体地,该电源管理器50和/或CIF 58可以包括实现例示操作的硬件电路系统。图3是示例电源管理器50用于断电事件的一个实施例的操作的流程图。如果处理 器16被断电(判定框70,“是”分支)并且如果CIF 58已信令I/O空闲(判定框72,“是”分支),则电源管理器50可以确定将发生断电事件。如果如此,该电源管理器50可以解除到CIF 58的PwrUpReq信号断言(框74),以启始断电事件。电源管理器50可以等待来自CIF 58的肯定应答(判定框76),并且响应于对PwrUpAck的解除断言(判定框76,”是”分支),电源管理块50可以断电L2高速缓存(框78)。图4示例了 CIF58用于断电事件的一个实施例的操作的流程图。CIF 58对断电事件的处理可以始于对来自电源管理器50的解除断言PwrUpReq的响应(判定框80,”是”分支)。CIF 58可以从上电/断电存储器60读取初始条目(框82),并确定是否该条目是有效的并且用于断电事件(V和D设置,判定框84)。如果是(判定框84,”是”分支),CIF58可发送地址/数据对到L2控制18A来更新被标识的配置寄存器56A-56D (框86)并可以读取存储器60中的下一条目(框82)。如果否(判定框84,”否”分支),CIF 58可确定所有配置寄存器写的写响应是否都已从L2控制器18A接收到(判定框88)。如果这些响应已被接收(判定框88,”是”分支),L2控制18A可被准备用于断电而CIF 58则解除断言PwrUpAck信号以肯定应答断电请求(框90)。图5示例了电源管理器50用于上电事件的一个实施例的操作的流程图。如果处理器16要被上电,或者如果在CIF58接收到存储器操作(引起I/O空闲解除断言),该电源管理器50可以确定断电事件将要发生。电源管理器50可以上电L2高速缓存控制(框 100)并可以等待电源稳定。电源管理器50可以断言PwrUpReq信号(框102),并可以等待PwrUpAck信号被断言(判定框104)以确定L2高速缓存18被初始化并准备好再次通信。图6示例了 CIF58用于上电事件的一个实施例的操作的流程图。CIF 58对上电事件的处理可以开始于对PwrUpReq信号断言的响应(判定框110,”是”分支)。CIF 58可以读取上电/断电存储器60中的下一条目(框112)。如果该条目是有效的并且是上电事件操作(V设置和D清除,判定框114,”是”分支),CIF 58可以将配置寄存器写传送到L2高速缓存控制18A (框116)并读取存储器60中的下一条目(框112)。如果该输入是无效的或者是断电事件操作(判定框114,”否”分支),CIF 58可以确定是否已经接收到寄存器写的响应(判定框118)。如果是(判定框118,”是”分支),CIF 58则可断言PwrUpAck信号(框120)。在某些实施例中,电源管理器50可以确定在上电事件处理期间L2高速缓存18要被断电,或者可以确定在断电事件处理期间L2高速缓存18要被上电。在某些实现中,电源管理器50可以被配置为在初新的转变之前允许进行中的转变完成。在其他实现中,电源管理器50可以被配置为一旦确定则信令新的转变(例如通过改变PwrUpReq信号的状态)。CIF 58可被配置为监视PwrUpReq信号来检测状态的改变,并且可以终止对进行中的事件的处理。CIF58可被配置为不需要进一步的处理就能肯定应答该改变的状态,或者可以处理新的事件(为新的事件执行寄存器与)。图7是针对一个实施例示例了 L2高速缓存18上电和断电序列的时序图。图7中的时间以任意的单位从左到右增长,。L2高速缓存18可以被上电并在时序图的开始处操作(框130),并且PwrUpReq和PwrUpAck信号都被断言。电源管理器50可以确定L2高速缓存要被断电,并可以解除断言PwrUPReq信号(虚线132)。CIF 58可以开始传送寄存器写并收集响应(框134)。一旦写完成并且响应被接收到,CIF 58可解除断言PwrUpAck(虚线136)而L2高速缓存18可被断电(框138)。在下一点,电源管理器50可以确定L2高速缓存18要被上电,并可以在为L2高速缓存18接通电源后断言PwrUpReq信号(虚线140)。CIF 58可以传送寄存器写来初始化配置寄存器(框142),并可作为完成写和接收到响应的响应而断言PwrUpAck信号(虚线144)。在这一点,L2高速缓存18可以被上电并重新操作(框 146)。
现在转到图8,示例了更新L2高速缓存配置的软件的一个实施例的流程图。例如,该软件可以包括可在系统5引导期间执行和/或在L2高速缓存配置改变的系统操作期间的其他时刻执行的L2配置代码。L2配置代码可在处理器16中的一个处理器上执行以实现图8中所示的操作。也就是说,L2配置代码可以包括指令,所述指令在被处理器16中的一个处理器执行时实现图8所示的操作。虽然为了便于理解而以特定顺序示出了这些块,但是也可以使用其他顺序。L2配置代码可以写入L2高速缓存18的一个或多个配置寄存器(框150)。如果一个或多个配置寄存器需要在L2高速缓存18断电期间被写入(判定框152,”是”分支),该代码可以将配置寄存器的地址和相应的数据写入到上电/断电存储器60中(框154)。例如,可以包括引起L2高速缓存18同步的寄存器写。该代码可以在用断电写来写入的每个条目中设置V和D位。如果一个或多个配置寄存器要在L2高速缓存18 (判定框156,”是”分支)的上电期间被恢复,该代码可以将配置寄存器的地址和相应的数据写入上电/断电存储器60并在每个条目中设置V位并清除D位(框158)。注意到在某些实施例中,相同的配置寄存器可被包括在断电写和上电写两者中。在其他实施例中,CIF 58可被配置为检测配置寄存器56A-56D (或在上电事件中要被存储和/或在断电事件中已写入的配置寄存器的子集)的写入。CIF 58可以自动捕捉写入上电/断电存储器60中的各寄存器的值,并且因此L2配置代码不需要明确地执行对存储器60的写入。在一些此类实施例中,除了上述的自动捕捉外,L2配置代码还能够更新存储器60。例如,L2配置代码可以插入同步命令用于断点事件。接下来转到图9,示出了计算机可访问存储介质200的框图。一般来说,计算机可访问存储介质包括在用于向计算机提供指令和/或数据期间可被计算机访问的任何存储介质。例如,计算机可访问存储介质包括的存储介质可以是诸如磁性或光介质,例如,盘(固定的或者可移除的)、磁带、CD-ROM、或 DVD-ROM、CD-R、CD-RW、DVD-R、DVD-RW、或蓝光。存储介质还可以包括易失性或者非易失性存储介质,诸如RAM(例如同步动态RAM (SDRAM)、双倍数据速率(DDR、DDR2、DDR3 等)SDRAM、低功率 DDR (LPDDR2 等)SDRAM、Rambus DRAM (RDRAM)、静态RAM (SRAM)等)、ROM、闪存、可经由外设接口诸如通用串行(USB)接口等存取的非易失性存储器(例如闪存)。存储介质可以包括微机电系统(MEMS),存储介质也可以经由通信介质诸如网络和/或无线连接访问。图9中的计算机可访问存储介质200可以存储L2配置代码202,后者可用于实现图8中的流程图。一般地,计算机可访问存取介质200可以存储任何指令集,指令集在被执行时实现图8中的流程图的一部分或者全部。载体介质可以包括计算机可访问存储介质以及传输介质,诸如有线或者无线传输。现在转到图10,示出了系统350的一个实施例的框图。在该例示的实施例中,系统350包括耦接至外部存储器352的集成电路10的至少一个实例。外部存储器352可以组成上文参考图I所述的主存储器子系统(例如外部存储器352可以包括存储器12A-2B)。集成电路10耦接到一个或多个外设354和外部存储器352。还设有电源356以便为集成电路358供应电压并为存储器352和/或外设354供应一个或多个电压。在一些实施例中,可以包括集成电路10的多于一个的实例(并且同样可以包括多于一个的外部存储器352)。存储器352可以是任何类型的存储器,诸如动态随机存取存储器(DRAM)、同步DRAM (SDRAM)、双倍数据速率(DDR、DDR2、DDR3等)SDRAM (包括SDRAM的移动版本诸如MDDR3等,和 / 或 SDRAM 的低功率版本,诸如 LPDDR2 等)、RAMBUS DRAM (RDRAM)、静态 RAM(SRAM)等。一个或多个存储器设备可以耦接到电路板上以形成存储器模块,诸如单列直插存储器模块(SIMM)、双列直插存储器模块(DIMM)等。作为替换,这些设备可以片上芯片配置、封装上封装配置、或是多芯片模块配置与集成电路10 —并安装。取决于系统350,外设354可以包括任何期望的电路系统。例如,在一个实施例中,系统350可以是一个移动设备(例如个人数字助理(PDA)、智能电话等)而外设354可以包括各种类型的无线通信设备,诸如WiFi、蓝牙、蜂窝、全球定位系统等。外设354还可以包括附加的存储,包括RAM存储、固态存储、或者盘存储。外设354可以包括用户接口设备,诸如显示屏、包括触摸显示屏或者多点触摸显示屏、键盘或其他输入设备、麦克风、扬声器等。在其他实施例中,系统350可以是任何类型的计算机系统(例如桌上型个人计算机、笔记本、工作站、上网本等等)。各种变化和修改对于完全理解了上述公开的本领域技术人员而言是显而易见的。 所附权利要求旨在被解释为涵盖所有这些的变化和修改。
权利要求
1.一种设备,包括 存储器,被配置为存储识别用于在断电电路块之前执行的第一操作集合以及用于在上电电路块之后执行的第二操作集合的数据; 控制电路,被耦接以在系统内的处理器断电期间接收对断电所述电路块的请求,所述系统包括存储器和控制电路,其中该控制电路被配置为响应于所述请求执行在存储器中识别的相应的第一操作集合。
2.根据权利要求I所述的设备,其中第一操作集合包括用于电路块中的第一多个寄存器的第一多个寄存器写操作,并且其中存储器中的数据包括用于识别所述第一多个寄存器的第一多个地址以及要被写入所述第一多个寄存器的第一多个数据值,并且其中第二操作集合包括用于电路块中的第二多个寄存器的第二多个寄存器写操作,并且其中存储器中的数据包括用于识别第二多个寄存器的第二多个地址以及要被写入所述第二多个寄存器的第二多个数据值。
3.根据权利要求2所述的设备,其中第一寄存器被包括在第一多个寄存器和第二多个寄存器两者内。
4.根据权利要求I所述的设备,其中存储器包括软件使用第一操作集合和第二操作集合可编程的一个或多个寄存器。
5.根据权利要求I所述的设备,其中控制电路还被配置为在系统中的处理器被断电期间接收电路块上电请求,并且其中控制电路被配置为响应于电路块上电请求执行在存储器中识别的相应的第二操作集合。
6.一种系统,包括 一个或多个处理器; 耦接到所述一个或多个处理器的电路块;以及 耦接到所述电路块并被配置为耦接到一个或多个外设的桥接器,其中该桥接器包括可使用表示在电路块断电之前执行的第一多个操作和在电路块上电期间执行的第二多个操作的数据来编程的多个寄存器,并且其中所述桥接器被配置为响应于电路块的断电事件执行第一多个操作以及响应于电路块的上电事件执行第二多个操作。
7.根据权利要求6所述的系统,其中所述电路块是高速缓存。
8.根据权利要求7所述的系统,其中该高速缓存包括多个配置寄存器,并且第二多个操作中的至少一些操作是对多个配置寄存器中的一个或多个进行写入,并且所述多个寄存器可使用多个配置寄存器中的所述一个或多个的地址以及要被写入多个配置寄存器中的所述一个或多个的值而被编程。
9.根据权利要求7所述的系统,还包括被配置为响应于检测到一个或多个处理器被断电并且进一步响应于检测到没有来自一个或多个外设的待决操作而生成断电事件的电源管理器。
10.根据权利要求9所述的系统,其中桥接器被配置为响应于第一多个操作的完成肯定应答所述断电事件。
11.根据权利要求10所述的系统,其中电源管理器被配置为生成上电事件,并且桥接器被配置为响应于第二多个操作的完成肯定应答所述上电事件。
12.根据权利要求7所述的系统,其中多个寄存器包括用于在多个寄存器中表现的每个操作的指示,该指示用于指示所述操作是第一多个操作中的一个操作还是第二多个操作中的一个操作。
13.—种方法,包括 在包括耦接到电路块的一个或多个处理器的系统中检测电路块要被上电,其中所述一个或多个处理器在检测时是断电的; 向耦接到所述电路块的控制电路发出请求;以及 控制电路通过执行存储在该控制电路中的多个操作以初始化电路块来响应所述请求。
14.根据权利要求13所述的方法,其中每个操作用电路块中配置寄存器的地址以及要被写入配置寄存器中的值来表示。
15.根据权利要求13所述的方法,还包括 检测到电路块要被断电; 向控制电路发出第二请求;以及 控制电路通过执行存储在该控制电路中的一个或多个第二操作来响应所述第二请求。
16.根据权利要求15所述的方法,其中一个或多个第二操作在电路块中引起同步操作。
17.根据权利要求15所述的方法,还包括 控制电路确定一个或多个第二操作完成; 响应于上述确定,控制电路肯定应答所述第二请求;以及 响应于控制电路的肯定应答,断电电路块。
全文摘要
硬件动态高速缓存电源管理。在一个实施例中,控制电路被配置为向在被断电后正被上电的电路块传送操作,以重新初始化该电路块用于操作。这些操作可被存储在控制电路耦接到的存储器(例如寄存器集合)中。在一个实施例中,控制电路还可被配置为在电路块断电之前,将来自存储器的其他操作传送到电路块。因此,即使在系统中的处理器被断电(并且因此此时软件不可执行)期间,电路块也可被上电或断电,而无需为上电/断电事件唤醒处理器。在一个实施例中,该电路块可以是耦接到一个或多个处理器的高速缓存。
文档编号G11C11/413GK102646446SQ20111045969
公开日2012年8月22日 申请日期2011年9月30日 优先权日2010年9月30日
发明者D·鲍尔坎, E·P·麦克尼吉, T·J·米利特, V·葛普塔 申请人:苹果公司