CN101356510B - 当处理器处于低功率状态时可为后台dma装置提供数据的小型高功效高速缓冲存储器 - Google Patents

当处理器处于低功率状态时可为后台dma装置提供数据的小型高功效高速缓冲存储器 Download PDF

Info

Publication number
CN101356510B
CN101356510B CN2006800507749A CN200680050774A CN101356510B CN 101356510 B CN101356510 B CN 101356510B CN 2006800507749 A CN2006800507749 A CN 2006800507749A CN 200680050774 A CN200680050774 A CN 200680050774A CN 101356510 B CN101356510 B CN 101356510B
Authority
CN
China
Prior art keywords
impact damper
miniature high
memory buffer
speed memory
processor
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.)
Active
Application number
CN2006800507749A
Other languages
English (en)
Other versions
CN101356510A (zh
Inventor
劳伦特·R·莫尔
程宇庆
皮特·N·格拉斯科斯奇
先勇·皮特·宋
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.)
Montalvo Systems Inc
Sun Microsystems Inc
Original Assignee
Sun Microsystems Inc
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
Priority claimed from US11/351,058 external-priority patent/US7412570B2/en
Priority claimed from US11/559,069 external-priority patent/US7958312B2/en
Application filed by Sun Microsystems Inc filed Critical Sun Microsystems Inc
Publication of CN101356510A publication Critical patent/CN101356510A/zh
Application granted granted Critical
Publication of CN101356510B publication Critical patent/CN101356510B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

当由于任何或所有微处理器处于不支持监听的低功率状态下使得所述微处理器中的高速缓冲的数据不可被存取时,小型低功耗的缓冲器/小型高速缓冲存储器送出和吸收选择的指向包括在微处理器的相关域中的存储空间的DMA存取。通过允许所述微处理器(或部分所述微处理器)保持在低功率状态,经由缓冲器/小型高速缓冲存储器满足选择的DMA存取使得功耗能够被降低。缓冲器/小型高速缓冲存储器可针对在微处理器中高速缓冲的数据在(临时)不相关方式下进行操作,并且当微处理器(或部分所述微处理器)转换到能够进行监听的高功率状态时,在失活之前,缓冲器/小型高速缓冲存储器被清洗以与高速缓冲的数据同步。或者,缓冲器/小型高速缓冲存储器可针对高速缓冲的数据在(增量)相关方式下进行操作。所述微处理器实现具有相关高速缓冲存储器系统(如第一级、第二级以及更高级的高速缓冲存储器)的一个或多个处理器。

Description

当处理器处于低功率状态时可为后台DMA装置提供数据的小型高功效高速缓冲存储器
背景技术
技术领域:
需要在微处理器系统DRAM存取以及微处理器系统DMA处理方面的进步以提供性能、功率效率和使用效用上的改进。
现有技术:在此提及的技术和概念(包括为了说明前后关系、定义或比较的目的),除非特别地被识别为公知或者熟知,不应被解释为承认这些技术或概念是先前已经公知或现有技术的一部分。在此引用的所有参考文件(如有)(包括专利、专利申请以及出版物),无论是否明确地被结合,都是以其整体为任何目的被结合参考。在此,不应理解为承认任何所述参考文件是相关的现有技术,也不构成承认这些文件的实际出版内容或日期。
在一些微处理器系统中,当系统中的其它处理被最小化或暂停时,在DMA操作(诸如GPU引用帧缓冲器信息)期间执行DRAM存取,并且每次DRAM存取消耗很多功率。类似地,在一些微处理器系统中,所有或一部分另外的断电的处理器和相关的高速缓冲存储器子系统被上电(或防止被断电),以处理相关的DMA操作(诸如USB装置事务(transaction))。需要更有效地执行DRAM存取和处理DMA存取的技术,由此使得能够提高性能、功率效率和使用效用。
在ACPI适用的系统中,由于不存在监听(snooping),所以对于低功率的ACPI适用的状态C3、C4、C5等不允许相关的DMA,而在高速缓冲存储器被监听时,对于相对较高功率的ACPI适用状态C2、C1和C0允许相关的DMA。在下文中,术语C0、C1、C2、C3、C4和C5指的是类似命名的ACPI适用功率状态。
概要
可以以多种方式实现本发明,包括作为处理、加工的产品、设备、系统、物质的合成、以及如计算机可读存储介质或计算机网络(其中通过光学或电子通信链路传送程序指令)的计算机可读介质。在本说明书中,可将这些实现方式或任何其他本发明可形成的形式称为技术。一般地说,在本发明的范围内,可以改变公开的处理步骤的次序。详细描述提供在上述提及的领域中实现性能、效率和使用效用上的改进的本发明的一个或多个实施例的公开。详细描述包括便于更快理解详细描述的其余部分的介绍。所述介绍包括简短地总结根据在此教导的构思的示意性系统和方法的示意性组合。正如在结论中更详细讨论的,本发明涵盖在颁布的本专利的结尾附带的权利要求的范围内的所有可能的修改和变形。
附图说明
图1示出了系统的几个实施例的选择的细节,该系统实现了用于满足选择的非可高速缓冲存取和用于满足一些后台DMA装置存取的一个或多个缓冲器/小型高速缓冲存储器的透明使用。
图2示出了图1中的缓冲器/小型高速缓冲存储器中的任一个的实施例的选择的方面。
图3示出了状态机的实施例的选择的方面,该状态机适用于控制图2中的缓冲器/小型高速缓冲存储器的例子以满足选择的非可高速缓冲存取。
图4示出了存储器范围信息的实施例,该存储器范围信息用于确定选择的匹配非可高速缓冲存取和选择的匹配DMA存取,以通过图2中的缓冲器/小型高速缓冲存储器的例子来进行处理。
图5示出了通过实现用于满足后台DMA装置存取的相关的缓冲器/小型高速缓冲存储器的实施例而执行的选择的操作。
图6示出了通过实现用于满足后台DMA装置存取的不相关的缓冲器/小型高速缓冲存储器的实施例而执行的选择的操作。
图7A-7F示出了包括在处理器中的缓冲器/小型高速缓冲存储器的前后关系的各种实施例。
详细描述
下面结合示出了本发明的原理的附图来提供对本发明的一个或多个实施例的详细描述。一些实施例或其变形的特征可以是“显著的”。结合实施例来描述本发明,这些实施例应被理解为仅仅是示意性的,而不是限制性的。(显著地或相反)本发明不限于这里的一个或所有实施例。本发明的范围仅由已颁布的本专利的结尾附带的权利要求限定,并且本发明包含多种选择、修改和等同物。在下面的描述中阐述许多特定细节,以提供对本发明的透彻理解。提供这些细节是为了举例的目的,并且本发明可根据权利要求来实施,而不需要一些或所有这些特定细节。为清楚起见,与本发明相关的技术领域中公知的技术资料没有被详细描述,从而使得本发明不被不必要地模糊。
介绍
包括本介绍仅仅是有利于更快地理解详细描述。由于任何介绍的段落是对整个主题必要的简化而不是旨在穷尽或限制性描述,所以本发明不限于在本介绍中呈现的构思。例如,下面本介绍仅对特定实施例提供受篇幅和组织结构限制的综述信息。实际上有多个其它实施例,包括最终推出权利要求的实施例,在整个说明书前后将讨论这些实施例。
缩写词
这里,在别处的各种简写的略语或缩写用于表示特定的元素。缩写的说明如下。
缩写词描述
  ACPI   高级配置和电源接口
  CPU   中央处理单元
  CRT   阴极射线管
  DMA   直接存储器存取
  DRAM   动态随机存取(读/写)存储器
  FIFO   先进先出
  GPU   图形处理单元
  I/O   输入/输出
  L1   第一级高速缓冲存储器
  L2   第二级高速缓冲存储器
  L3   第三级高速缓冲存储器
  LRU   最近最少使用
 MRU   最近最多使用
 MSR   机器/型号特定寄存器
 OS   操作系统
 PC   个人计算机
 PDA   个人数字助理
 USB   通用串行总线
通过用缓冲器/小型高速缓冲存储器满足选择的非可高速缓冲存取来消除一些DRAM存取,从而对处理器系统中的内部小型的和功率高效的缓冲器/小型高速缓冲存储器的透明使用使得功耗能够降低。通过用缓冲器/小型高速缓冲存储器满足一些后台DMA装置存取,来降低微处理器系统的CPU或高速缓冲存储器子系统必须被上电的情况的发生,缓冲器/小型高速缓冲存储器使得功耗能够进一步降低。在一些实施例中,微处理器系统实现了多个处理器(或多个CPU),每个处理器(或CPU)具有相关联的高速缓冲存储器子系统(例如,第一级、第二级、第三级和更高级高速缓冲存储器的各种布置)。
缓冲器/小型高速缓冲存储器提供经由DRAM存取降低的功率节省,缓冲器/小型高速缓冲存储器在正常模式和缓冲模式下选择性地可操作。在缓冲模式下(当CPU开始在低功率状态下操作时进入缓冲模式),匹配规定的物理地址范围的非可高速缓冲存取(诸如由DMA装置产生的非可高速缓冲存取)由缓冲器/小型高速缓冲存储器处理,而不是由存储器控制和DRAM处理。缓冲器/小型高速缓冲存储器处理包括:当引用失败(reference miss)时分配行(line),当引用成功(reference hit)时从缓冲器/小型高速缓冲存储器返回高速缓冲的数据。根据多个替换策略(包括当没有空闲行时停止替换)中的一个,在缓冲器/小型高速缓冲存储器中替换多个行。在正常模式下(当CPU开始在高功率状态下操作时进入正常模式),缓冲器/小型高速缓冲存储器与传统的高速缓冲存储器类似地进行操作,并且在其中不对非可高速缓冲存取进行处理。在一种使用情况下,保留在缓冲器/小型高速缓冲存储器中的数据是以压缩格式保持的图形更新数据。
在一些实施方式中,缓冲器/小型高速缓冲存储器是连接到一个或多个CPU的高速缓冲存储器(诸如第一级、第二级和第三级高速缓冲存储器中的任何一个)的一部分。在一些实施方式中,缓冲器/小型高速缓冲存储器是连接到一个或多个CPU的高速缓冲存储器子系统中的最高级高速缓冲存储器(或“外级”(outer level)高速缓冲存储器)的一部分。例如,在仅具有第一级高速缓冲存储器的高速缓冲存储器子系统中,缓冲器/小型高速缓冲存储器可以是第一级高速缓冲存储器(或者如果有多个第一级高速缓冲存储器时可选的高速缓冲存储器)的一部分。又例如,在具有第一级和第二级高速缓冲存储器的高速缓冲存储器子系统中,缓冲器/小型高速缓冲存储器可以是第二级高速缓冲存储器(或者如果有多个第二级高速缓冲存储器时可选的高速缓冲存储器)的一部分。又例如,在具有第一级、第二级和第三级高速缓冲存储器的高速缓冲存储器子系统中,缓冲器/小型高速缓冲存储器可以是第三级高速缓冲存储器(或者如果有多个第三级高速缓冲存储器时多个高速缓冲存储器)的一部分。
当由于任何或所有CPU(或相关联的微处理器系统)处于不支持监听的低功率状态下使得CPU中的高速缓冲的数据不可被存取时,通过缓冲器/小型高速缓冲存储器送出(sourcing)和吸收(sinking)选择的指向包括在CPU的相关域中的存储空间的DMA存取,通过减少CPU和/或高速缓冲存储器子系统上电来提供功率节省。通过允许微处理器系统(或其一部分)保持在低功率状态,经由缓冲器/小型高速缓冲存储器满足选择的DMA存取使得功耗能够被降低。缓冲器/小型高速缓冲存储器可针对在微处理器系统中高速缓冲的数据在(临时)不相关方式下进行操作,并且当微处理器(或其一部分)转换到能够进行监听的高功率状态时,在失活之前,缓冲器/小型高速缓冲存储器被清洗(flush)以与高速缓冲的数据同步。或者,缓冲器/小型高速缓冲存储器可针对高速缓冲的数据在(增量)相关方式下进行操作。
可采用包括LRU、MRU的分配策略(或其变形)来将缓冲器/小型高速缓冲存储器作为直接、完全相关联或设置的相关联的存储器进行管理。分配策略可包括:当空闲行在缓冲器/小型高速缓冲存储器中不再可用时停止分配。分配状态(诸如LRU或MRU状态)可独立于或取决于微处理器系统(或在其中选择的元件)的功率状态而进展。
可指导缓冲器/小型高速缓冲存储器处理所有DMA事务,或者基于事务地址范围或哪个DMA装置正发起事务来选择DMA事务以进行处理。仅当微处理器系统(或其一部分)在低功率状态或监听禁止状态下操作时,缓冲器/小型高速缓冲存储器可选择性地处理DMA事务。当微处理器系统(或其一部分)在高功率状态或监听启用状态下操作时,缓冲器/小型高速缓冲存储器可处理DMA事务。
当微处理器转换为非监听操作时,在微处理器中的高速缓冲的数据变为不可用之前,数据可被存储(或“预填充”)在缓冲器/小型高速缓冲存储器中(出于将来DMA引用时使用的期望)。可根据编程的地址范围或动态地根据先前观测的DMA事务进行预填充。
示意性组合
该介绍以段落集来得出结论,这些段落简要地总结了根据这里所教导的构思的示意性系统和方法。每个段落使用非正式的伪权利要求格式来突出显示了特征的各种组合。这些精练的描述并不意味是互相排斥、穷尽或限制性的,本发明不限于这些突出显示的组合。正如在结论章节中所详细讨论的,本发明包含在发布的权利要求的范围内的所有可能的修改和变化,所述权利要求附在专利的最后。
该介绍以段落集来得出结论,这些段落简要地总结了根据这里所教导的构思的示意性系统和方法。每个段落使用非正式的伪权利要求格式来突出显示了特征的各种组合。这些浓缩的描述并不意味是互相排斥、穷尽或限制性的,本发明不限于这些突出显示的组合。正如在结论章节中所详细讨论的,本发明包含在发布的权利要求的范围内的所有可能的修改和变化,所述权利要求附在专利的最后。
一种方法的第一示意性组合包括以下步骤:通过引用区别于相关域的数据结构响应DMA存取;当相关域在相关模式之间转换(transition)时,将所述数据结构与所述相关域同步;其中,所述相关模式包括不相关模式和相关模式。
在所述第一示意性组合中,所述同步包括以下操作的至少一个:将修改的数据从所述数据结构清洗(flush)到所述相关域,将所述数据结构中不需要的数据标记为可用的以便从所述相关域预填充,并且将所述数据从所述相关域预填充到所述数据结构。在所述第一示意性组合中,所述数据结构包括缓冲器和高速缓冲存储器的至少一个。在所述第一示意性组合中,DMA存取是可高速缓冲的存取。在所述第一示意性组合中,DMA存取是非可高速缓冲的存取。
在所述第一示意性组合中,DMA存取是第一DMA存取,并且还包括通过引用所述相关域来响应第二DMA存取。在前述示意性组合中,对大于或者等于下限(lower limit)物理地址的第一物理地址执行所述第一DMA存取。在前述示意性组合中,所述第一物理地址小于或等于上限(upper limit)物理地址。在前述示意性组合中,对小于所述下限物理地址的第二物理地址执行所述第二DMA存取。前述示意性组合还包括通过引用所述相关域来响应第三DMA存取,其中,对大于所述上限物理地址的第三物理地址执行所述第三DMA存取。
在所述第一示意性组合中,根据预定的替换策略操作所述数据结构。在所述第一示意性组合中,根据动态替换策略操作所述数据结构。在所述第一示意性组合中,根据LRU替换策略操作所述数据结构。在所述第一示意性组合中,根据MRU替换策略操作所述数据结构。
在所述第一示意性组合中,根据引用替换策略状态的替换策略操作所述数据结构。在前述示意性组合中,所述替换策略状态独立于相关域的当前相关模式地进展。在所述第一示意性组合中,根据引用替换策略状态的替换策略操作所述数据结构,并且所述替换策略状态依赖于相关域的当前相关模式地进展。
在所述第一示意性组合中,根据直接映射高速缓冲管理技术来管理所述数据结构。在所述第一示意性组合中,根据集合相关联管理技术管理所述数据结构。在所述第一示意性组合中,根据完全相关联管理技术管理所述数据结构。
一种方法的第二示意性组合包括以下步骤:响应于对相关域由相关模式转换到非相关模式的请求,启用存储器结构以响应装置的存储器存取;和在所述启用之后,允许所述相关域转换到非相关模式。
在所述第二示意性组合中,所述装置是DMA装置。在前述示意性组合中,所述启用步骤包括:确定物理地址值,所述物理地址值被与跟所述存储器存取的每个相关联的各物理地址相比较。在前述示意性组合中,如果所述物理地址之一大于或等于所述物理地址值,则各存储器存取被所述存储器结构处理。在前述示意性组合中,如果所述物理地址之一小于所述物理地址值,则各存储器存取被相关域处理。
在所述第二示意性组合中,所述装置是DMA装置。在前述示意性组合中,所述启用步骤包括:确定物理地址值,所述物理地址值被与跟所述存储器存取的每个相关联的各物理地址相比较。在前述示意性组合中,如果所述物理地址之一大于或等于所述物理地址值,则各存储器存取被所述存储器结构处理。在前述示意性组合中,如果所述物理地址之一小于所述物理地址值,则各存储器存取被相关域处理。
在所述第二示意性组合中,具有大于或等于物理地址值的各物理地址的存储器存取的每个被所述存储器结构处理。在前述示意性组合中,所述物理地址值被保留于通过在相关域中实现的处理器可编程的寄存器。在前述示意性组合中,具有小于所述物理地址值的各物理地址的存储器存取的每个被所述处理器处理。
在所述第二示意性组合中,具有介于下限物理地址值和上限物理地址值之间的各物理地址的存储器存取的每个被所述存储器结构处理。在前述示意性组合中,所述物理地址值被保留于通过在相关域中实现的处理器可编程的寄存器。在前述示意性组合中,具有在下限物理地址值和上限物理地址值范围以外的各物理地址的存储器存取的每个被所述处理器处理。
在所述第二示意性组合中,所述启用步骤包括:向所述存储器结构的至少一部分预填充数据。在前述示意性组合中,所述存储器存取的至少一个是读取,并且还包括,响应于所述读取请求提供一些数据。
在所述第二示意性组合中,所述启用步骤包括:向所述存储器结构的至少一部分预填充数据。在前述示意性组合中,所述存储器存取的至少一个是写入,并且还包括,响应于所述写入请求修改一些数据。
在所述第二示意性组合中,所述启用步骤包括:向所述存储器结构的至少一部分预填充数据;并且还包括:响应于对从非相关模式转换到相关模式的相关域的请求,将所述存储器结构的部分的至少一子部分标记为可用于预填充。前述示意性组合还包括:在所述标记之后,允许所述相关域转换到相关模式。
在所述第二示意性组合中,所述启用步骤包括:向所述存储器结构的至少一个子区域预填充数据,所述子区域至少部分基于可编程寄存器值被确定。在所述第二示意性组合中,所述启用步骤包括:向所述存储器结构的至少一个子区域预填充数据,所述子区域至少部分基于通过观测先前的存储器存取确定的动态范围被确定。
在所述第二示意性组合中,当所述相关域处于相关模式时,所述相关域响应存储器存取,而当所述相关域处于非相关模式时,所述相关域不响应存储器存取。
在所述第二示意性组合中,当所述相关域处于相关模式时,所述相关域响应存储器存取,而当所述相关域处于非相关模式时,所述存储器结构响应存储器存取。
在所述第一和第二示意性组合的任一个中,所述相关域包括处理器、高速缓冲存储器和与高速缓冲存储器子系统连接的链路中的至少一个。在所述第一和第二示意性组合的任一个中,所述相关模式包括高功率模式、高性能模式和启用监听(snoop-enabled)模式中的至少一个。在所述第一和第二示意性组合的任一个中,所述非相关模式包括低功率模式、低性能模式和禁止监听模式中的至少一个。
所述第二ic的所述第三示意性组合还包括通过对所述存储器结构进行存取来响应至少一个存储器存取。
在所述第三示意性组合中,所述至少一个存储器存取是读取。在前述示意性组合中,所述存取包括确定所述存储器结构中是否存在用于读取的读取数据。在前述示意性组合中,如果所述存储器结构中没有读取数据,则向所述相关域请求读取数据。
在所述第三示意性组合中,所述存储器存取的至少一个是写入。在前述示意性组合中,所述存取包括确定所述存储器结构是否具有为了所述写入而分配的用于写入数据的位置。前述示意性组合还包括,如果所述存储器结构不具有分配的用于写入数据的位置,则在所述存储器结构中分配用于写入数据的新位置。前述示意性组合还包括将写入数据存储在所述新位置中。
在所述第三示意性组合中,响应于对相关域从非相关模式转换到相关模式的请求,禁止所述存储器结构响应所述存储器存取。前述示意性组合还包括:在所述禁止之后,允许所述相关域转换到相关模式。
在所述第三示意性组合中,响应于对相关域从非相关模式转换到相关模式的请求,将自所述存储器结构被启用后存储的修改的数据清洗所述存储器结构。前述示意性组合还包括,在所述清洗后,允许所述相关域转换到相关模式。
一种系统的第四示意性组合包括:微处理器;与所述微处理器连接的存储结构;其中,响应于使所述微处理器进入启用监听状态的请求,所述存储结构中的修改的数据被清洗到所述微处理器,然后所述微处理器被允许进入启用监听状态。
在前述示意性组合的第五示意性组合中,在所述请求之后、修改数据被清洗之前,所述存储结构被禁止响应装置的存取。
一种系统的第六示意性组合包括:微处理器;与所述微处理器连接的存储结构;其中,响应于使所述微处理器进入启用监听状态的请求,所述存储结构中未经修改的数据被标记为不需要,然后微处理器被允许进入启用监听状态。
在前述示意性组合的第七示意性组合中,在所述请求之后、未经修改的数据被标记之前,所述存储结构被禁止响应装置的存取。在前述示意性组合中,响应于微处理器进入启用监听状态的请求,部分被标记为不需要的数据被预填充数据替换。在前述示意性组合中,在所述部分被替换之后,微处理器被允许进入禁止监听状态。在前述示意性组合中,在所述部分被替换之后,所述存储结构被启用以响应装置的存取。在前述示意性组合中,所述存取的至少一个存取是由一些所述预填充数据满足的读取。在前述示意性组合中,所述存取的至少其他的一个是用于修改部分所述预填充数据的写入。
一种系统的第八示意性组合包括:微处理器;与所述微处理器连接的存储结构;其中,响应于使所述微处理器进入禁止监听状态的请求,所述存储结构被预填充数据,然后微处理器被允许进入禁止监听状态。
在所述第八ic的第九示意性组合中,当所述被预填充之后,所述存储结构被启用以响应装置的存取。在前述示意性组合中,所述存取包括读取和写入。在前述示意性组合中,所述处理读取包括提供部分数据。在前述示意性组合中,所述处理写入包括修改部分数据。
一种系统的第十示意性组合包括:微处理器;与所述微处理器连接的存储结构;其中,响应于使微处理器进入禁止监听状态的请求,所述存储结构被启用以响应装置的存取,然后微处理器被允许进入禁止监听状态。
所述第五、第七、第九和第十示意性组合还包括所述装置。在前述示意性组合中,所述装置是DMA装置。
综述
在各种微处理器系统中,可经常通过DMA事务,由装置使用非可高速缓冲和可高速缓冲存储器存取来传送数据。一些DMA事务是“后台”存取,即使当微处理器系统不繁忙时,也需要“后台”存取。
由于不需要监听,导致降低的监听带宽需求和降低的功耗,所以非可高速缓冲存取是有利的。在传统系统中,通过DRAM(而不是高速缓冲存储器)来满足非可高速缓冲存取。但是,在这里所描述的实施例中,在一些情况下,通过缓冲器/小型高速缓冲存储器(而不是DRAM)来满足所有或部分非可高速缓冲存取,并且根据非可高速缓冲语义来执行所有或部分非可高速缓冲存取,因此透明地消除(或减少)了DRAM存取。缓冲器/小型高速缓冲存储器的操作对于其它代理是不可见的(而不是减少DRAM存取),并且不需要对现有的OS和相关的装置驱动程序代码进行改变。由于对缓冲器/小型高速缓冲存储器进行存取比对DRAM进行存取使用较少的能量,所以DRAM存取的消除降低了功耗。
例如,考虑到增强的单片微处理器系统具有一个或多个CPU、嵌入的存储器控制器(用于例如与DRAM进行接口连接)以及用于满足(在此描述的)非可高速缓冲存取的缓冲器/小型高速缓冲存储器。即使当缓冲器/小型高速缓冲存储器满足来自其它代理的非可高速缓冲请求时,所有的CPU和存储器控制器也可保持在低功率状态下。在一些实施例中,低功率状态包括可兼容ACPI的低功率状态(诸如ACPI状态C3、C4、C5等),这些状态不提供高速缓冲存储器的监听。当执行较少的DRAM存取时(或当不执行DRAM存取时),也可满足非可高速缓冲请求。因此,当增强的微处理器系统处于空闲时,诸如当等待键盘输入以及正由GPU显示的数据不变而被重复存取以用于显示更新时,可使用缓冲器/小型高速缓冲存储器来实现大量功率节省。
在一些方面,缓冲器/小型高速缓冲存储器与高速缓冲存储器类似,并且包括存储器结构,该存储器结构具有多个行,每个行具有数据和状态(诸如有效比特)并与地址或地址范围相关联。响应于对事件集合中的一个的检测,在一个或多个状态机的控制下,做出缓冲器/小型高速缓冲存储器的操作模式的改变(诸如,进入低功率CPU状态使得缓冲器/小型高速缓冲存储器能够响应于非可高速缓冲存取)。与状态机相关联的所有控制逻辑或任何一部分控制逻辑还提供在选择的非可高速缓冲存取和缓冲器/小型高速缓冲存储器之间的双向连接。可由在一个或多个程序可存取模式寄存器中指定的物理地址范围(例如,相应于DRAM)来部分确定选择的非可高速缓冲存取。
由于不需要有时与非可高速缓冲存取相关联的特殊处理(诸如,对整个高速缓冲存储器或高速缓冲存储器的一部分的显式清洗),所以可高速缓冲存取是有利的。在传统系统中,由形成相关域的相关联的高速缓冲存储器子系统或CPU来满足可高速缓冲存取。不利的是,CPU或相关联的高速缓冲存储器子系统的一部分必须被上电,以执行可高速缓冲存取(即,处理器逻辑必须退出任何监听禁用状态)。但是,在这里所描述的实施例中,在一些情况下,由缓冲器/小型高速缓冲存储器(而不是由CPU或高速缓冲存储器子系统)来满足所有或部分可高速缓冲存取。因此,否则,如果处于空闲(即,处于监听禁用状态),则CPU和高速缓冲存储器子系统可保持断电,以很大程度地降低功耗。
系统
图1示出了系统的几个实施例的选择的细节,该系统实现了用于满足选择的非可高速缓冲存取和用于满足一些后台DMA装置存取的一个或多个缓冲器/小型高速缓冲存储器的透明使用。用多个缓冲器/小型高速缓冲存储器中的一个满足选择的非可高速缓冲存取使得DRAM存取能够被降低,因此降低功耗。满足一些DMA存取使得能够减少CPU和/或高速缓冲存储器子系统上电,因此降低功耗。在一些情况下,该系统包括在可兼容PC的机器(诸如笔记本式或桌上型计算机,或者嵌入式应用装置)中。在一些情况下,该系统包括在PDA类装置或者其它类似的移动手持或便携式单元中。
该系统包括几个实线框部件,这些实线框元素根据各种情况被划分为各种独特的集成电路(或芯片),如通过几个虚线框部件所示。图中显示了3种变形。第一变形具有包括在处理器中的缓冲器/小型高速缓冲存储器(诸如缓冲器/小型高速缓冲存储器112A),以满足选择的非可高速缓冲存取。第一变形还具有位于处理器外部的缓冲器/小型高速缓冲存储器(诸如缓冲器/小型高速缓冲存储器112B),以满足一些后台DMA装置存取。第二变形具有包括在处理器中的缓冲器/小型高速缓冲存储器,但不具有位于处理器外部的缓冲器/小型高速缓冲存储器。第三变形具有位于处理器外部的缓冲器/小型高速缓冲存储器,但不具有包括在处理器中的缓冲器/小型高速缓冲存储器。在一些使用情况下,缓冲器/小型高速缓冲存储器112A也可满足一些后台DMA装置存取。在一些使用情况下,缓冲器/小型高速缓冲存储器112B也可满足选择的非可高速缓冲存取。
具有一个或多个CPU以及相关联的高速缓冲存储器和/或高速缓冲存储器子系统的CPU和高速缓冲存储器部件110连接到(处理器)控制单元130A,处理器控制单元130A根据第一变形和第二变形具有缓冲器/小型高速缓冲存储器112A。处理器控制单元通过链路120连接到(芯片组)控制单元130B,芯片组控制单元130B根据第一变形和第三变形具有缓冲器/小型高速缓冲存储器112B。芯片组控制单元连接到GPU/DMA装置115、(内置)DMA装置132和(外置)DMA装置133。示出了对DRAM进行接口连接的两种技术。在第一种技术中,处理器位于中央的DRAM控制器113A连接到(处理器)控制单元130A和DRAM 114A。在第二种技术中,芯片组位于中央的DRAM控制器113B连接到芯片组控制单元130B和DRAM 114B。各种实施例可实现DRAM接口连接技术的任何组合。
划分的情况包括被实现为单个集成电路的处理器芯片102,处理器芯片102具有CPU和高速缓冲存储器部件110、控制单元130A(可选地根据变形包括缓冲器/小型高速缓冲存储器112A)以及可选的DRAM控制器113A。划分的情况还包括被实现为另一单个集成电路的芯片组103,芯片组103具有控制单元130B(可选地根据变形包括缓冲器/小型高速缓冲存储器112B)、(内置)DMA装置132以及可选的DRAM控制器113B。划分的情况还包括被实现为单个芯片的集成图形芯片组104,集成图形芯片组104具有芯片组103和GPU/DMA装置115。
划分的情况还包括被实现为单个芯片的处理器系统101,处理器系统101包括处理器芯片102和芯片组103的所有元件。在一些使用情况下,(单片)处理器系统101结合作为单独的芯片的GPU/DMA装置115、(外置)DMA装置133以及DRAM114A或114B来进行操作。划分的情况还包括以单片、多小片(multi-die)或多片模块实现的处理器和DRAM芯片100,处理器和DRAM芯片100包括处理器芯片102的所有部件以及整个DRAM 114A或DRAM114A的任何一部分。划分的情况还包括以单片、多小片或多片模块实现的集成图形和DRAM芯片组105,集成图形和DRAM芯片组105包括集成图形芯片104的所有部件以及整个DRAM 114B或DRAM 114B的任何一部分。上述划分的情况仅仅是示意性的,并不是限制性的,这是由于其它划分的情况是可能的并且可被预期。例如,所述以单片被实现的部件可被实现为包括在单模块封装或多模块封装中的单个集成电路小片。
示出的单元和方框边界不是限制性的,这是因为可使用其它部件划分。例如,可在任何一个DMA装置中实现整个或一部分芯片组控制单元和位于处理器外部的缓冲器/小型高速缓冲存储器。又例如,包括在处理器中的缓冲器/小型高速缓冲存储器可与(所示的)CPU和高速缓冲存储器单独实现,或者整个或部分被包括在CPU和高速缓冲存储器中。又例如,可在多个DMA装置的每个中实现芯片组控制单元(或其任何一部分)以及位于处理器外部的缓冲器/小型高速缓冲存储器的例子。
在第一变形和第三变形(至少具有位于处理器外部的缓冲器/小型高速缓冲存储器)的实施例中,即使当所有CPU、高速缓冲存储器、处理器控制单元以及将处理器连接到芯片组的链路被断电,或者在不提供例如监听的低功率状态下操作时,也使得该系统能够执行选择的非可高速缓冲存取和一些DMA操作。芯片组控制单元当其它部件被断电(或处于各种低功率状态)时保持可操作,并且(通过位于处理器外部的缓冲器/小型高速缓冲存储器)满足选择的非可高速缓冲存取以及相对于芯片组内部或外部产生的一些DMA请求。当这些存取和请求被满足时,芯片组的其它部件可以保持断电,因此进一步降低了整个功耗。或者,芯片组控制单元(包括位于处理器外部的缓冲器/小型高速缓冲存储器)在这些存取和请求没有正被处理时保持在低功率状态或断电状态,当接收到这些存取和请求时,临时转换为可操作状态足够长,以处理这些存取和请求。
与至少具有位于处理器外部的缓冲器/小型高速缓冲存储器的实施例类似,在第一变形和第二变形(至少具有位于处理器内部的缓冲器/小型高速缓冲存储器)的实施例中,即使当所有CPU、高速缓冲存储器和部分芯片组被断电,或者在不提供例如监听的低功率状态下操作时,也使得该系统能够执行选择的非可高速缓冲存取和一些DMA操作。处理器控制单元当其它部件被断电(或处于各种低功率状态)时保持可操作,并且(通过位于处理器内部的缓冲器/小型高速缓冲存储器)满足非可高速缓冲存取以及通过链路从芯片组传递的DMA请求。为了识别这些对处理器的存取和请求并与这些对处理器的存取和请求进行通信,当满足这些存取和请求时,芯片组控制单元和链路保持可操作,而芯片组的其它部件可保持断电,因此降低了整个功耗。或者,处理器控制单元(包括位于处理器内部的缓冲器/小型高速缓冲存储器)、链路和芯片组控制单元在这些存取和请求没有正被处理时保持在低功率状态或断电状态,当接收到这些存取和请求时,临时转换为可操作状态足够长,以处理这些存取和请求。
在一些实施例中,缓冲器/小型高速缓冲存储器(无论对于处理器是内置还是外置)分别与在处理器中实现的任何高速缓冲结构(诸如第一级高速缓冲存储器L1和第二级高速缓冲存储器L2)同步(或相关)。在一些实施例中,当处理器正执行存取时,缓冲器/小型高速缓冲存储器被保持增量地相关,即,缓冲器/小型高速缓冲存储器根据需要被监听。在一些实施例中,由于处理器从非监听功率状态转换为监听功率状态,所以缓冲器/小型高速缓冲存储器通过显式清洗被保持相关。在一些实施例中,不执行显式操作来使缓冲器/小型高速缓冲存储器同步,即,对于任何处理器实现的高速缓冲存储器不相关地操作。在一些实施例中,当缓冲器/小型高速缓冲存储器被不相关地操作时,系统软件确保在缓冲器/小型高速缓冲存储器中没有保留过期数据。
在第二变形(具有包括在处理器中的缓冲器/小型高速缓冲存储器,但不具有位于处理器外部的缓冲器/小型高速缓冲存储器)的一些实施例中,芯片组控制用作芯片组的链路接口。在第三变形(具有位于处理器外部的缓冲器/小型高速缓冲存储器,但不具有包括在处理器中的缓冲器/小型高速缓冲存储器)的一些实施例中,处理器控制用作处理器的链路接口。
缓冲器/小型高速缓冲存储器
图2示出了图1中的作为缓冲器/小型高速缓冲存储器112的缓冲器/小型高速缓冲存储器112A-B中的任一个的实施例的选择的方面。缓冲器/小型高速缓冲存储器包括存储器结构201,存储器结构201在状态机202以及根据来自模式寄存器221的信息的相关联控制逻辑的控制下进行操作,并且通过状态机201被存取。存储器结构被组织为如行201.0...201.N所示的多个相同条目(或根据实施例的多组相同条目)。每行包括如行201.0所举例的一个或多个比特的一个或多个字段,行201.0具有可选标签字段211、数据字段212、有效比特213、脏比特(dirty bit)214和可选可高速缓冲比特215。在一些实施例中,脏比特和可选可高速缓冲比特的任何组合被实现为单个字段(下文中称为状态字段)。状态字段在宽度上不限于两个比特,可包括三个或更多个比特来对多种行状态条件进行编码。
在一些实施例中,存储器结构与高速缓冲存储器类似,并且可按照直接映射方式(即,没有标签字段)或完全相关联方式(即,具有用于匹配整个行地址的标签字段)被组织。在一些实施例中,存储器结构与集合相关联高速缓冲存储器(标签字段匹配整个地址的一部分)类似,具有作为各个集合操作的两组或更多组行。在各种实施例中,存储器结构响应于状态机提供的缓冲器/小型高速缓冲存储器控制信息和根据模式寄存器的相关联控制逻辑,在多种模式的任何组合下进行操作,多种模式包括直接映射模式、完全相关联模式和集合相关联模式。
模式寄存器不限于缓冲器/小型高速缓冲存储器中的实施方式,也不限于单个寄存器的实施方式。在一些实施例中,模式寄存器(或其一部分)可在处理器系统或芯片组的任何一个部件(包括与处理器或CPU中的一个相关联的一个或多个MSR、缓冲器/小型高速缓冲存储器(图2所示)和DRAM控制器)中实现。
在一些实施例中,存储器结构与传统高速缓冲存储器(即,不存在可高速缓冲比特215)相同。在一些实施例中,存储器结构从传统高速缓冲存储器修改而来。在一些实施例中,传统高速缓冲存储器的分配和替换功能被部分使用以管理存储器结构。在一些实施例中,存储器结构与CPU高速缓冲存储器的一部分组合,或者与外级高速缓冲存储器集成,所述外级高速缓冲存储器诸如L2或L3高速缓冲存储器(参见本文中其它地方的“包括在处理器中的缓冲器/小型高速缓冲存储器”实施例章节,以获得更多信息)。
状态机
图3示出了状态机202的实施例的选择的方面(状态图),状态机202适合于控制缓冲器/小型高速缓冲存储器112(图2)的例子以满足选择的非可高速缓冲存取(诸如根据前述具有位于处理器外部的缓冲器/小型高速缓冲存储器的第一变形和第三变形)。如虚线椭圆所示,状态机实现了根据正常操作模式(“正常模式”301)和缓冲器操作模式(“缓冲器模式”302)的两组状态。在正常模式下,缓冲器/小型高速缓冲存储器不处理非可高速缓冲存取,在缓冲器模式下,可由缓冲器/小型高速缓冲存储器处理选择的非可高速缓冲存取。正常模式响应于多个正常模式到缓冲器模式事件中的一个而转换为缓冲器模式。缓冲器模式响应于多个缓冲器模式到正常模式事件中的一个而转换为正常模式。
在转换为正常模式之后,状态机在“正常操作”状态312下开始操作,其中,缓冲器/小型高速缓冲存储器112不对非可高速缓冲存取事务进行处理。直到检测到多个正常模式到缓冲器模式事件中的一个时,才退出正常操作状态。然后,状态机通过“缓冲器模式进入事件”311转换为“(正常)清洗缓冲器/小型高速缓冲存储器”状态313,其中,所有脏行(dirty line)(如果存在的话)从缓冲器/小型高速缓冲存储器被清洗到存储器(诸如图1的DRAM 114A或114B中的一个)。
当完成清洗后,状态机通过“(正常)清洗完成”303转换为“缓冲器操作”状态323,其中,可由缓冲器/小型高速缓冲存储器处理选择的非可高速缓冲事务。直到检测到多个缓冲器模式到正常模式事件中的一个时,才退出缓冲器操作状态。然后,状态机通过“正常模式进入事件”321转换为“(缓冲器)清洗缓冲器/小型高速缓冲存储器”状态322,其中,所有脏行(如果有的话)从缓冲器/小型高速缓冲存储器被清洗。当完成清洗后,状态机通过“(缓冲器)清洗完成”304转换为“正常操作”312,其中,缓冲器/小型高速缓冲存储器不再处理非可高速缓冲事务。
正常模式到缓冲器模式事件包括各种可编程事件,诸如一个或多个CPU在降低功率状态(例如,可兼容ACPI的C3、C4、C5状态等中的一个)或较低性能模式下操作所用的时间。可检测状态/模式、在各个状态/模式下所需的时间以及被观测以用于各个状态/模式下的操作的CPU通过存储在模式寄存器221(图2)中的模式信息是可被编程的。
缓冲器模式到正常模式事件包括各种可编程事件,诸如一个或多个CPU退出降低的功率状态中的一个、返回在较高性能模式下操作(即,退出较低性能模式)或产生核心通信量。可检测状态/模式以及被观测以用于各个状态/模式下的操作的CPU通过模式寄存器中的模式信息是可被编程的。一些可编程事件也可与监听带宽阈值相关,当超过该阈值时,被识别为缓冲器模式到正常模式事件(参见本文中其它地方的“通过非可高速缓冲存取的DRAM存取的减少”章节,以获得更多信息)。
在一些实施例中,通过来自模式寄存器221(诸如存储在模式寄存器的比特或字段编码中)的启用/禁用信息来禁止转换到缓冲器模式状态。在一些实施例中,缓冲器模式到正常模式事件中的一个包括指示缓冲器模式将被禁用的启用/禁用信息。在一些实施例中,正常模式到缓冲器模式事件中的一个包括指示缓冲器模式将被启用的启用/禁用信息。在一些实施例中,启用/禁用信息被在多个CPU中的一个上执行的软件(诸如写入到MSR的比特或字段的驱动程序)编程,并且在一些实施例中,启用/禁用信息由状态机(例如,结合缓冲器模式到正常模式事件和正常模式到缓冲器模式事件的识别)而操纵。
在一些实施例中,即使当一个或所有CPU没有在降低的功率状态、监听禁用状态或较低性能状态操作时,诸如当一个或所有CPU在可兼容ACPI的C0、C1或C2状态或较高性能状态操作时,缓冲器模式也可以是可操作的。
存储器范围
图4示出了存储器范围信息的实施例,该存储器范围信息用于确定选择的匹配非可高速缓冲存取和选择的匹配DMA存取,以通过缓冲器/小型高速缓冲存储器112的例子来进行处理。全物理地址空间401示出了由该系统实现的整个物理地址空间,全物理地址空间401具有可被编程地指定的可编程存储器范围402。当缓冲器/小型高速缓冲存储器在缓冲器模式下操作以处理选择的非可高速缓冲存取时,落入到可编程存储器范围402中的非可高速缓冲存取被缓冲器/小型高速缓冲存储器处理(其它非可高速缓冲存取不被缓冲器/小型高速缓冲存储器处理)。当缓冲器/小型高速缓冲存储器(以相关或非相关方式)进行操作以满足选择的匹配DMA存取时,落入到可编程存储器范围402中的DMA存取被缓冲器/小型高速缓冲存储器处理(其它DMA存取不被缓冲器/小型高速缓冲存储器处理)。
在一些实施例中,可编程存储器范围被指定为范围403,范围403具有被模式地址字段221.1和221.3的内容分别定义的最高和最低物理地址。在一些实施例中,仅有缓冲器/小型高速缓冲存储器的一部分被分配为在缓冲器模式下处理非可高速缓冲存取,如模式地址字段221.2的内容所定义的子范围404概念性所示。在一些实施例中,分配的一部分可被其它机制(诸如多种方式或这些方式中的特定选择)指定,并且没有必要受限于单个连续的物理地址范围的规范。
在一些实施例中,模式地址字段221.1-221.3的任何组合被实现为图2的模式寄存器221的字段。在一些实施例中,这些模式地址字段的任何组合可在单独的模式寄存器中被实现。在一些实施例中,这些模式地址字段的任何组合可MSR中被实现,MSR位于在图1的CPU和高速缓冲存储器部件110、处理器芯片102、处理器系统101以及处理器和DRAM芯片100中实现的一个或多个CPU中。
虽然针对单个存储器范围描述了上述存储器范围,但是多种实施例可提供多个范围(以及子范围)。这些范围(以及子范围)中的每个可相对于彼此被独立指定。例如,第一多个可编程存储器范围可被指定为用于非可高速缓冲存取缓冲器操作,第二多个可编程存储器范围可被指定为用于DMA存取相关操作,第三多个可编程存储器范围可被指定为用于DMA存取非相关操作。在具有多个缓冲器/小型高速缓冲存储器的实施例中,单独的可编程存储器范围可被指定为用于每个缓冲器/小型高速缓冲存储器,或者一个或多个缓冲器/小型高速缓冲存储器可共享所述范围中的一个或多个。
在一些实施例中,所有或一部分所述范围可通过地址-观测逻辑被编程,地址-观测逻辑被实现为在时间上对DMA传递地址进行监视(参见本文中其它地方的“降低的功率DMA存取”章节,以获得更多信息)。
通过非可高速缓冲存取的DRAM存取的减少
通过由缓冲器/小型高速缓冲存储器(诸如根据具有位于处理器外部的缓冲器/小型高速缓冲存储器的前述第一变形和第三变形)处理选择的非可高速缓冲存取来减少DRAM存取的操作如下。在系统重置后,包括在CPU和高速缓冲存储器部件110中的CPU执行软件,以对模式寄存器221(图2)中的存储器范围和操作模式信息进行编程,从而指定非可高速缓冲存取以达到优化。缓冲器/小型高速缓冲存储器(诸如图1中的缓冲器/小型高速缓冲存储器112B)根据“正常操作”状态312(图3)开始处理,并且缓冲器/小型高速缓冲存储器不处理(诸如由图1中的GPU/DMA装置115产生的)非可高速缓冲存取。在已经发生了可编程事件(诸如在低功率/性能状态下花费的时间)之后,状态机202(图2)通过清洗缓冲器/小型高速缓冲存储器中的脏行(如果有的话)并将缓冲器/小型高速缓冲存储器的所有行标记为无效(诸如通过未证实的有效比特213),开始使得对缓冲器/小型高速缓冲存储器中的匹配非可高速缓冲事务能够进行高速缓冲。在缓冲器/小型高速缓冲存储器被完全清洗后,缓冲器/小型高速缓冲存储器在缓冲器模式下操作,并且缓冲器/小型高速缓冲存储器对匹配非可高速缓冲事务进行处理。
GPU/DMA装置产生的非可高速缓冲事务与(诸如由图4中的可编程存储器范围402所描述的)范围进行比较,如果非可高速缓冲事务的地址与所述范围中的一个匹配,则用缓冲器/小型高速缓冲存储器来处理非可高速缓冲事务(例如用图1中的DRAM 114A或114B在别处处理非匹配事务)。与通过具有分配、替换和监听策略的传统高速缓冲存储器的处理类似,匹配非可高速缓冲(在一些实施例中,可选地为匹配可高速缓冲)事务被缓冲器/小型高速缓冲存储器进行处理。在一些实施例中,分配策略通常被设置为分配读取,从而当行已经从DRAM被读取一次之后,该行驻留在缓冲器/小型高速缓冲存储器中。在一些实施例中,分配策略包括对写入的分配或全部写入(writethrough)。
替换策略可以是随机、LRU、FIFO、固定次序、循环、贪婪或任何其它策略,这些策略在当非可高速缓冲存取范围超过缓冲器/小型高速缓冲存储器容量时避免低性能的同时能够(或容易适合于能够)高效利用缓冲器/小型高速缓冲存储器容量。在一些实施例中,替换策略被调整,从而DRAM存取被及时减少、最小化或分组,以通过消除DRAM存取而使得各种系统部件(诸如CPU、存储器控制器和DRAM)能够达到较低功率状态。在一些实施方式中,调整的替换策略包括:只有当存在“空闲”行(或条目)时,才进行分配,否则不进行分配,即,仅当空闲行可用时,分配才继续,当不再有空闲行留下时,分配停止。空闲行可以是无效条目,或者可以是在当使用固定次序替换策略(例如从方式0至方式N-1)时进入缓冲器模式之前分配的任何条目。规则地扫描完全适合于缓冲器/小型高速缓冲存储器的地址范围的通信量被优化地管理,同时由于缓冲器/小型高速缓冲存储器的整个容量将被存取,所以使缓冲器/小型高速缓冲存储器溢出的扫描将被优化地管理,因此减少了DRAM存取和相关联的功耗。由于溢出扫描部分是结合的整体(coalesced whole),所以DRAM存取还将被及时成块,因此使得DRAM(以及存储器控制器)能够进入低功率状态。
在一些使用情况下,当监听带宽为高时,非可高速缓冲的数据不被保留在缓冲器/小型高速缓冲存储器中(即使处于缓冲器模式),另一方面,仅当得知需要的附加监听带宽将会很小和/或通过匹配范围(诸如用于图形更新通信量)被很好控制时,非可高速缓冲的数据被保留在缓冲器/小型高速缓冲存储器中。在一些使用情况下,当监听压力接近峰值或超过编程的阈值时,退出缓冲器模式(参见本文中其它地方的“状态机”章节,以获得更多信息)。
在一些实施例中,缓冲器/小型高速缓冲存储器与直接映射高速缓冲存储器类似地操作,仅覆盖与缓冲器/小型高速缓冲存储器的容量所允许的一样多的匹配地址范围。标签字段(诸如图2中的具有地址的标签字段211)不被使用,而有效比特(诸如图2中的有效比特213)被使用。由于与所述范围中的一个匹配的非可高速缓冲读取被接收,所以缓冲器/小型高速缓冲存储器的有效比特被存取。如果读取失败(即,相应的有效比特被清除),则读取的数据从DRAM被取出,被复制到缓冲器/小型高速缓冲存储器(诸如图2中的数据字段212)中,并且有效比特被设置。如果读取成功(即,有效比特被设置),则从缓冲器/小型高速缓冲存储器(诸如数据字段212)提供数据。在一些使用情况下,在直接映射模式下操作的缓冲器/小型高速缓冲存储器可对写入进行分配或全部写入。
在发生了另一可编程事件(诸如退出低功率/性能状态)后,状态机通过在处理非可高速缓冲存取的同时禁用缓冲器/小型高速缓冲存储器中的行的分配,对缓冲器/小型高速缓冲存储器中的所有脏行(如果有的话)进行清洗,并使得所有行无效,来开始禁用非可高速缓冲存取的高速缓冲。在缓冲器/小型高速缓冲存储器被完全清洗之后,缓冲器/小型高速缓冲存储器在正常模式下操作,并且缓冲器/小型高速缓冲存储器不对非可高速缓冲事务进行处理。在一些操作模式下,缓冲器/小型高速缓冲存储器在处于正常模式的同时用作传统的高速缓冲存储器。
在一些实施例或操作模式中,缓冲器/小型高速缓冲存储器(在缓冲器模式下)被完全保留,以用于(匹配)非可高速缓冲存取的处理。在一些实施例或操作模式中,缓冲器/小型高速缓冲存储器在正常模式以及缓冲器模式下对可高速缓冲存取进行处理,并且图2中的可高速缓冲比特215用于区分为可高速缓冲存取(诸如证实的(asserted)可高速缓冲比特215)分配的行以及为非可高速缓冲存取(诸如未证实的(deasserted)可高速缓冲比特215)分配的行。在一些操作模式下,行的清洗(诸如当缓冲器模式和正常模式之间转换时)在区分时是有条件的,诸如当转换时仅有非可高速缓冲行被清洗。
在一些实施例中,只有缓冲器/小型高速缓冲存储器的一部分在缓冲器模式下被操作以处理非可高速缓冲事务,而剩余部分在正常模式下被操作以处理可高速缓冲事务。在一些实施方式中,所述部分可被模式信息配置,或者当进入缓冲器模式时,可被动态配置。动态配置使得能够了解工作组以及确定(和优化)在缓冲器模式下使用的缓冲器/小型高速缓冲存储器的一部分。在一些实施方式中,如果所述剩余部分被清洗,则所述剩余部分被停用,如果所述剩余部分没有被清洗,则所述剩余部分在仅保留数据状态(即,未被证实)下被操作,从而降低功耗。在一些操作模式下,缓冲器/小型高速缓冲存储器的一部分始终在缓冲器模式下操作,从而匹配非可高速缓冲存取总是被该部分处理。在缓冲器模式下(有条件地)操作的缓冲器/小型高速缓冲存储器的一部分的规范以及始终在缓冲器模式下操作的部分的规范可以是通过标识多种方式或为每种方式设置一比特,以在缓冲器/小型高速缓冲存储器的每一个中使用。在多个CPU中的一个上执行的软件通过实现整个模式寄存器或模式寄存器的一部分的一个或多个MSR可对多种方式的设置或比特进行存取。
与缓冲器/小型高速缓冲存储器结合使用的替换、分配和监听策略的任何组合可根据正常模式和缓冲器模式下的操作而变化。例如,在缓冲器模式下,分配策略被增强,以将非可高速缓冲引用识别为缓冲存储器区域,并对识别的引用进行高速缓冲。又例如,在一些实施例(其中,在正常模式和缓冲器模式期间,可高速缓冲的数据和非可高速缓冲的数据共存于缓冲器/小型高速缓冲存储器中)中,非可高速缓冲的数据分配可被限制为只读存取。这种限制使得通过替换处理在正常模式下的操作期间能够淘汰非可高速缓冲行。又例如,在一些实施例中,只有用于对图形和/或帧缓冲器通信量进行缓冲的缓冲器/小型高速缓冲存储器的行被监听。
降低的功率DMA存取
对选择的DMA存取进行处理而不用对整个或部分CPU或相关联的高速缓冲存储器子系统上电(或监听启用)的缓冲器/小型高速缓冲存储器的操作可以根据相关的流程或非相关的流程。图5是针对相关的流程,图6是针对非相关的流程。相关的流程和非相关的流程的任何组合可用于具有位于处理器内部或位于处理器外部的缓冲器/小型高速缓冲存储器的第一变形、第二变形和第三变形的任何一个。
只要缓冲器/小型高速缓冲存储器服务于DMA请求,实施例(在所述实施例中,缓冲器/小型高速缓冲存储器在处理器之外或包括在芯片组中(诸如图1中的位于处理器外部的缓冲器/小型高速缓冲存储器112B))的操作使得连接处理器和芯片组的链路保持断电,并且即使当DMA请求被服务时,处理器中的总线和监听逻辑可保持在低功率状态下,导致高的功率节省。在缓冲器/小型高速缓冲存储器被清洗的使用情况下,处理器临时“突然跳到”较高功率状态(诸如从C3、C4、C5等转换为C2、C1或C0),以与所述清洗相关联地服务于回写。集合处理器而进行操作的芯片组推迟处理存储器通信量,直到所有的缓冲器/小型高速缓冲存储器修改状态(例如,脏行)被清洗到处理器和相关联的相关域为止。在一些实施例中,使得芯片组能够完全参与到相关域(诸如所谓的由一些可兼容X86的系统实现的“前端”总线系统)中。在芯片组完全参与到相关域中的一些实施例中,缓冲器/小型高速缓冲存储器可用作相关的高速缓冲存储器并被监听,避免显式清洗。
缓冲器/小型高速缓冲存储器包括在处理器中(诸如图1中的位于处理器内部的缓冲器/小型高速缓冲存储器112A)的实施例的操作每当DMA活动将被处理时对连接处理器和芯片组的链路上电,以将DMA活动从芯片组通信到缓冲器/小型高速缓冲存储器存在于其中的处理器。因此,处理器保持处理器控制单元的至少一部分被上电,以响应DMA活动。在缓冲器/小型高速缓冲存储器在非相关方式下操作的实施例中,当与处理器相关联的高速缓冲存储器系统变为可操作时(诸如当处理器退出低功率状态或非监听状态而处于全操作状态或监听状态时),缓冲器/小型高速缓冲存储器被显式清洗。在缓冲器/小型高速缓冲存储器在相关方式下操作的实施例中,尽管增量地保持相关导致另外的功耗,也不使用显式清洗。
当缓冲器/小型高速缓冲存储器用于处理DMA存取时,可采用任何适合的替换策略来操作缓冲器/小型高速缓冲存储器。在一些实施例中,替换策略选择新的(或未使用的)高速缓冲存储器行(而不是使用的行),或者选择具有比使用的行高的优先级的新行,以允许缓冲器/小型高速缓冲存储器在请求回写之前对另外的修改数据进行缓冲。在传送的数据量适合于缓冲器/小型高速缓冲存储器的使用情况下,选择未使用的行而不是使用的行,使得整个数据传送能够同时存在于缓冲器/小型高速缓冲存储器中。
在传送的数据集对于缓冲器/小型高速缓冲存储器太大或者与地址相关联的数据随时间改变的使用情况下,那么在一些实施例中,取决于操作前后使用几个替换策略。例如,如果数据集为“固定”但是太大(即,不用将全部数据写入缓冲器/小型高速缓冲存储器中就使缓冲器/小型高速缓冲存储器溢出),则只有未使用的行被分配,并且当所有未使用的行被使用时,分配停止。在使用所有行之后停止分配将与溢出存取捆绑在一起,导致更有效的功率操作。如果数据集连续变化(即,将所有数据写入缓冲器/小型高速缓冲存储器),则当缓冲器/小型高速缓冲存储器被充满时,分配可停止。或者,分配可取决于旧数据是否被继续存取而遵循LRU或MRU策略。在一些实施例中,替换策略状态(诸如LRU或MRU状态)被更新,而不考虑功率状态处理器正被操作。在一些实施例中,仅当处理器在C3或更深的功率状态下操作时,才更新替换策略状态。
缓冲器/小型高速缓冲存储器的行中的有效比特(诸如图2中的有效比特213)在系统重置时被清除为“无效”编码,并且行中的状态字段(诸如图2中的结合可选可高速缓冲比特215由脏比特214实现的状态字段)被写为“空闲”编码。通过重置剩余的有效比特并写入剩余的状态字段来继续系统重置处理,直到缓冲器/小型高速缓冲存储器中的所有行被标记“无效”和“空闲”。在一些实施例中,所有行被同时处理,在一些实施例中,所述行中的一些行被顺序处理。
在完成了系统重置处理之后,由于行被带入缓冲器/小型高速缓冲存储器,所以相应的有效比特被写为“有效”编码。相应的状态字段被设置为“清楚”编码以用于DMA读取操作,或者被设置为“脏”编码以用于DMA写入操作。当行被清洗时,状态字段被写为“空闲”,而有效比特保持“有效”。
当请求DMA操作时,包括缓冲器/小型高速缓冲存储器的控制单元被上电,并且缓冲器/小型高速缓冲存储器被存取以处理DMA操作。如果缓冲器/小型高速缓冲存储器包含用于所述操作的读取的数据(即,“成功”),或者具有用于存储所述操作的写入的数据的空间,则缓冲器/小型高速缓冲存储器服务于该DMA操作,而不使用任何处理器高速缓冲存储器系统的任何部分。如果缓冲器/小型高速缓冲存储器不包含读取的数据(即,“失败”),或者不具有用于写入的数据的空间,则处理器“突然跳到”或转换为监听状态(诸如C2或更高)(在该状态下,使得处理器能够响应相关通信量),并且处理器被请求服务于该DMA操作。然后,用处理器提供的数据来更新缓冲器/小型高速缓冲存储器。当可编程的时间量之后(特别地,例如,通过来自图2中的模式寄存器221的信息),允许处理器返回到较低功率状态。
当功率状态转换(或“突发”)事件被检测到时(这与缓冲器/小型高速缓冲存储器满足的DMA操作不相关),通过清洗首先将缓冲器/小型高速缓冲存储器与处理器(或任何相关联的高速缓冲存储器)同步,然后允许进行存储器操作(包括DMA操作)。
在一些实施例中,只有在低功率状态(诸如C3、C4、C5中的任何一个以及更深的状态)下,缓冲器/小型高速缓冲存储器才被激活,在低功率状态下,相关的DMA不被支持,与(处于低功率状态的)处理器相关联的高速缓冲存储器系统不可操作。在实现了可兼容X-86的一些实施例中,缓冲器/小型高速缓冲存储器在C3功率状态下不被激活,但是在C4以及更深的功率状态下被激活。在一些实施例中,缓冲器/小型高速缓冲存储器在更高的功率状态(诸如C2、C1和C0中的任何一个)下被激活。
在一些实施例中,只有DMA请求的一部分被缓冲器/小型高速缓冲存储器处理,被一个或多个物理地址范围过滤(参见本文中其它地方的“存储器范围”章节)。在一些实施例中,所有或一部分地址范围被处理器或CPU编程。在一些实施例中,根据各种实施方式,当处理器高速缓冲存储器状态由于低功率状态下的操作而不能被存取时,或者当处理器高速缓冲存储器状态可被存取时,或者当上述两种情况都发生时,经由在选择的时间段对DMA传送的动态观测,通过地址观测逻辑来对所有或一部分所述范围进行编程。在一些实施例(诸如在芯片组中具有缓冲器/小型高速缓冲存储器的一些实施方式)中,根据DMA装置标识符(而不是地址范围或除了地址范围之外)来进行过滤。例如,模式信息可被编程以标识即使当处理器被断电或休眠也继续运行的装置(诸如网络和USB接口),只有来自标识的装置的DMA存取被缓冲器/小型高速缓冲存储器处理(而不考虑与存取相关联的地址)。
在一些实施例中,处理器可在进入低功率(诸如非监听)状态之前“预填充”整个缓冲器/小型高速缓冲存储器或缓冲器/小型高速缓冲存储器的一部分。处理器将“有效”行定位在缓冲器/小型高速缓冲存储器中,并且根据相应标签字段中的地址信息填充相应的数据。在一些使用情况下(即,对与缓冲器/小型高速缓冲存储器操作的先前间隔相同的行来进行在处理器处于低功率状态的同时发生的DMA操作),预填充减少了处理缓冲器/小型高速缓冲存储器失败另外所需的处理器功率状态突然跳变。
在一些实施例中,在处理器处于低功率状态的同时,处理器可用与DMA装置相关联的装置驱动程序提供的数据预填充整个缓冲器/小型高速缓冲存储器或缓冲器/小型高速缓冲存储器的一部分,其中,DMA装置将潜在地产生DMA存取。装置驱动程序确定(或能够得知)与从DMA装置发起的请求相关联的地址。来自与请求相关联的地址的数据被复制到缓冲器/小型高速缓冲存储器中,并且标签信息被相应设置。
在一些实施例中,缓冲器/小型高速缓冲存储器与处理器高速缓冲存储器系统的相对细粒度功率控制相结合地操作。例如,当所有或任何一部分处理器中的所有或任何一部分高速缓冲存储器不包括有效数据(即,被完全断电而不用保持状态)并因此不能进行监听,或者包括有效数据(即,被充分上电以保持数据)但不能进行监听时,缓冲器/小型高速缓冲存储器是激活的。又例如,当高速缓冲存储器系统的“内”部分(诸如一个或多个第一级高速缓冲存储器)不能进行监听,并且高速缓冲存储器系统的“外”部分(诸如一个或多个第二级或第三级高速缓冲存储器)能够进行监听时,缓冲器/小型高速缓冲存储器是激活的,并因此可响应相关事务。又例如,当内部分不能进行监听,外部分的一部分(诸如第二级高速缓冲存储器)已经被清除并禁止监听,并且外部分的剩余部分(诸如第三级高速缓冲存储器)能够进行监听时,缓冲器/小型高速缓冲存储器是激活的。可通过硬件和软件代理的任何组合来执行清除。
降低的功率DMA存取:相关操作
图5示出了通过实现用于满足后台DMA装置存取的相关的缓冲器/小型高速缓冲存储器(包括在处理器中的诸如图1的缓冲器/小型高速缓冲存储器112A或位于处理器外部的诸如图1的缓冲器/小型高速缓冲存储器112B)的实施例而执行的选择的操作。根据两个主流程来进行处理,一个主流程是DMA读取存取,另一个主流程是DMA写入存取。每个流程的处理从DMA装置(“接收到DMA”502)以DMA存取而开始(“空闲”501),该处理根据存取的类型(即,读取或写入)而继续。
通过确定读取是否可被已经存在于缓冲器/小型高速缓冲存储器(诸如图1中的缓冲器/小型高速缓冲存储器112A-B中的一个)中的数据满足(“成功?”503R),来开始DMA读取的处理(“读取”502R)。如果为否(“否”503RN),则处理继续,以确定缓冲器/小型高速缓冲存储器是否具有可用于分配的任何剩余行(“空间可用?”504R)。如果为否(“否”504RN),则从缓冲器/小型高速缓冲存储器选择用于淘汰的行(“选择处理对象”505R)。如果选择的行具有任何修改的数据(“脏”505RD),则该行被存储在相关域中(“回写到处理器”506R)。然后,该行被分配为用于正被处理的DMA读取(“保留行”507R)。如果该行先前不是脏的(“清洁”505RC),则不执行回写,并且该行立即被分配(“保留行”507R)。如果存在可用的剩余行(“是”504RY),则不选择处理对象(因此也没有回写),并且选择的行立即被分配(“保留行”507R)。
在行被分配为用于DMA读取数据之后,DMA存取传递到相关域以用于进一步处理(“对处理器的DMA请求”508R)。(诸如在突然跳到监听启用状态之后)数据由相关域提供,存储在分配的缓冲器/小型高速缓冲存储器行中,并被标记为“清除”和“有效”(“写入;标记‘清洁’和‘有效’”509R)。数据还被提供给DMA装置(“数据到装置”510R),DMA存取的处理完成,并且等待新的DMA存取的开始(“空闲”501)。如果缓冲器/小型高速缓冲存储器已经具有必要的数据以满足DMA读取存取(“是”503RY),则不需要失败处理,并且数据被立即给传送到DMA装置(“数据到装置”510R),省略了行分配和填充操作。
通过确定在缓冲器/小型高速缓冲存储器中是否已经分配用于写入的行(“成功?”503W),来开始DMA写入(“写入”502W)的处理。如果为否(“否”503WN),则处理继续,以确定缓冲器/小型高速缓冲存储器是否具有可用于分配的任何剩余行(“空间可用?”504W)。如果为否(“否”504WN),则从缓冲器/小型高速缓冲存储器选择用于淘汰的行(“选择处理对象”505W)。如果选择的行具有任何修改的数据(“脏”505WD),则该行被存储在相关域中(“回写到处理器”506W)。然后,该行被分配为用于正被处理的DMA写入(“保留行”507W)。如果该行先前不是脏的(“清洁”505WC),则不执行回写,并且该行立即被分配(“保留行”507W)。如果存在可用的剩余行(“是”504WY),则不选择处理对象(因此也没有回写),并且选择的行立即被分配(“保留行”507W)。
在行被分配为用于DMA写入数据之后,DMA写入数据被存储在其中,并且被标记为非清洁(“写入;标记‘脏’”508W)。然后完成DMA存取的处理,并且等待新的DMA存取的开始(“空闲”501)。如果缓冲器/小型高速缓冲存储器已经具有被分配为用于DMA写入的行(“是”503WY),则不需要失败处理,并且DMA写入数据立即被存储在缓冲器/小型高速缓冲存储器中(“写入;标记‘脏’”508W),省略了行分配操作。
降低的功率DMA存取:非相关操作
图6示出了通过实现用于满足后台DMA装置存取的不相关的缓冲器/小型高速缓冲存储器(位于处理器内部的诸如图1的缓冲器/小型高速缓冲存储器112A或位于处理器外部的诸如图1的缓冲器/小型高速缓冲存储器112B)的实施例而执行的选择的操作。根据两个主流程来进行处理,一个主流程是进入较低功率状态(“较低C状态”600L),另一个主流程是进入较高功率状态(“较高C状态”600H)。
对于进入较低功率状态的处理用于以来自相关域的尽可能多的数据来填充(或“预填充”)缓冲器/小型高速缓冲存储器,从而尽可能多的DMA可由缓冲器/小型高速缓冲存储器满足,而不用对相关域部件(诸如CPU或相关联的高速缓冲存储器子系统)上电。进入较低功率状态取决于填充的完成,而不考虑整个缓冲器/小型高速缓冲存储器是否被填充或者是否没有缓冲器/小型高速缓冲存储器被填充。
以期望转换为较低功率C状态(“进入较低C状态”601L)(诸如当进入深C状态(例如,C3、C4等)时)的通知来开始较低功率状态进入处理(“空闲”601)。确定在缓冲器/小型高速缓冲存储器中是否存在可用于接收系统数据(即,具有“有效”标签并具有“空闲”状态)的任何剩余行(“更多行?”602L)。如果为是(“是”602LY),则处理继续,以选择“有效”和“空闲”行中的一个(“选择行”603L)。然后,从相关域获得数据以被存储到选择的行中(“来自系统的数据”604L)。所述数据被存储到该行中,并被标记为清洁(“写入;标记‘清洁’”605L),由于该行不再“空闲”,所以使得该行不可用于另外的系统数据。
然后流程返回,以确定在缓冲器/小型高速缓冲存储器中是否存在可用于接收系统数据的任何另外的行(“更多行?”602L)。如果没有另外的可用的行(“否”602LN),则为进入较低功率状态准备的缓冲器/小型高速缓冲存储器填充被完成,缓冲器/小型高速缓冲存储器准备好进入较低功率状态,并且流程返回,以等待另一C状态转换(“空闲”601)。
在一些实施例中,省略了与进入降低的功率状态(“较低C状态”600L)相关的处理,即,不存在对缓冲器/小型高速缓冲存储器的“预填充”。
通过将当任何相关域部件(诸如CPU或相关联的高速缓冲存储器子系统)处于较低功率(或监听禁用)状态时高速缓冲的数据清空,对于进入较高功率状态(或监听启用状态)的处理将缓冲器/小型高速缓冲存储器与相关域同步。因此,缓冲器/小型高速缓冲存储器被显式清洗所有可能比相关域中的相应数据新的数据。
以期望转换为较高功率C状态(“进入较高C状态”601H)(诸如当进入监听启用C状态(例如,C2、C1或C0)时)的通知来开始对进入较高功率状态的处理(“空闲”601)。确定在缓冲器/小型高速缓冲存储器中是否存在可能具有将被回写到相关域的新数据(即,具有除了“空闲”之外的诸如“清洁”或“脏”的状态)的任何剩余行(“更多行?”602H)。如果为是(“是”602HY),则处理继续,以选择非“空闲”行中的一个(“选择行”603H)。如果选择的行具有任何修改的数据,诸如由“脏”状态指示(“脏”603HD),则该行被存储在相关域中(“回写到相关域”604H),然后行状态改变为“空闲”(“标记‘空闲’”605H)。如果选择的行不具有修改的数据,诸如由“清洁”状态指示(“清洁”603HC),则省略回写,并且所述行状态立即改变为空闲(“标记‘空闲’”605H)。
然后流程返回,以确定是否需要检查用于可能的新数据的另外的行(“更多行?”602H)。如果没有需要处理的另外的行(“否”602HN),则缓冲器/小型高速缓冲存储器与相关域同步,对相关域的存取可恢复,缓冲器/小型高速缓冲存储器准备好进入较高功率状态,并且流程返回,以等待另一C状态转换(“空闲”601)。
数据压缩/解压缩
在一些实施例中,存储在缓冲器/小型高速缓冲存储器中的数据(诸如图形更新数据)以压缩的形式被保留,并且当存取时被解压缩。根据各种实施例,可在GPU和处理器系统(或芯片组(如果被实现为单独装置))的任何组合中执行压缩或解压缩操作之一或两者。
在解压缩比压缩在计算上代价相对较低的实施例中,处理可包括以下内容。根据与帧缓冲器的未压缩的呈现相应的地址范围,GPU从处理器系统(或芯片组)请求原始帧缓冲器数据。处理器系统(或芯片组)从存储器取出原始(即,未压缩的)帧缓冲器数据,所述存储器根据最近和最可存取的复制所驻留的位置包括处理器写入缓冲器、第一级和第二级高速缓冲存储器、缓冲器/小型高速缓冲存储器和DRAM的任何组合。
然后,GPU对原始数据进行压缩,并将所得的压缩数据写入到与帧缓冲器(或其一部分)的压缩的呈现相应的地址范围,所述帧缓冲器(或其一部分)可直接映射到图形缓冲器。指向压缩的呈现的读取接收压缩的数据(适合于通过GPU的展开),而未压缩的呈现的读取从图形缓冲器接收解压缩数据,其中,当展开压缩数据的适合部分时由处理器系统(或芯片组)提供该解压缩数据。因此,处理器系统(或芯片组)将未压缩的帧缓冲器的外观(或视图)提供给除了GPU之外的装置。根据各种实施例,相对简单的图形装置(诸如不能解压缩的简单CRT控制器)、调试操作、和软件渲染功能的任何组合可使用未压缩的帧缓冲器视图。
在总线利用将被最小化或者GPU被简化的实施例中,处理可包括以下内容。根据与帧缓冲器的压缩的呈现相应的地址范围,GPU从处理器系统(或芯片组)请求压缩的帧缓冲器数据。如果在图形缓冲器中还不存在请求的数据,则处理器系统(或芯片组)从存储器取出适合的原始(即,未压缩的)帧缓冲器数据。因此,根据最近和最容易存取的复制所驻留的位置,存储器包括处理器写入缓冲器、第一级和第二级高速缓冲存储器、缓冲器/小型高速缓冲存储器和DRAM的任何组合。
然后,处理器系统(或芯片组)对原始数据进行压缩,并将所得的压缩数据写入到图形缓冲器中。GPU请求的压缩数据然后从图形缓冲器返回,并且被GPU展开(即,解压缩)。因此,未压缩数据在一条总线上只有单个来回,由此降低了能量消耗和带宽使用,并且处理器系统(或芯片组)保持对未压缩的帧缓冲器数据进行存取的能力。
在GPU执行压缩和解压缩的一些实施例中,处理器系统(或芯片组)缺少对未压缩的帧缓冲器的直接存取。因此,GPU为虚拟帧缓冲器提供为除了GPU之外的装置(诸如CPU、视频镜像外围设备以及寻求帧缓冲器数据的其它类似请求者)的存取而定义的相应虚拟帧缓冲器地址范围。
在一些前述压缩/解压缩的实施例中,图形缓冲器被实现为整个缓冲器/小型高速缓冲存储器或缓冲器/小型高速缓冲存储器的一部分。在一些实施例中,缓冲器/小型高速缓冲存储器的图形缓冲器部分根据第一缓冲器/小型高速缓冲存储器管理策略而操作,而缓冲器/小型高速缓冲存储器的剩余部分根据第二缓冲器/小型高速缓冲存储器管理策略而操作。例如,第一缓冲器/小型高速缓冲存储器管理策略可包括保持整个图形缓冲器“清洁”(即,不具有处于脏状态的行)。保持图形缓冲器清洁使得清洗图形缓冲器的必要性被消除,并且在一些设计中,对于帧缓冲器地址范围(与图形缓冲器地址范围不同)的写入在诸如缓冲器/小型高速缓冲存储器的另一部分中被单独高速缓冲。在一些使用情况下,写入与数据从视频捕获装置(或卡)被指引到窗口中视频的区域(video-in-window region)相应。视频捕获数据被频繁地重写,并且将该数据存储在缓冲器/小型高速缓冲存储器中可很大程度地减少DRAM存取。
在一些实施例中,独立于针对图3所描述的正常模式和缓冲器模式,由缓冲器/小型高速缓冲存储器提供图形缓冲。换句话说,即使当所有CPU在全功率状态和/或高性能状态下操作时,通过缓冲器/小型高速缓冲存储器的图形缓冲也是可操作的,因此减少了正常CPU操作期间的DRAM存取。
尽管前面的描述集中在GPU提供的非可高速缓冲通信量上,但是这些描述也可被等同地应用,而不限于来自任何代理(诸如任何DMA装置)的非可高速缓冲通信量。例如,根据各种实施例,可由缓冲器/小型高速缓冲存储器处理来自各种DMA代理(诸如网络控制器、存储器接口和其它类似的高带宽I/O部件)的非可高速缓冲通信量。
包括在处理器中的缓冲器/小型高速缓冲存储器的实施例
图7A-7F示出了与图1中的整个处理器芯片102或处理器芯片102的一部分相关的与包括在处理器中的缓冲器/小型高速缓冲存储器相关联的前后关系的各种实施例。这些图示出了CPU和相关联的高速缓冲存储器子系统的各种布置,包括L1、L2和L3高速缓冲存储器结构的几种组合。这些图还示出了包括在处理器中的缓冲器/小型高速缓冲存储器与高速缓冲存储器子系统不同或与高速缓冲存储器子系统组合的实施例。
图7A示出了作为处理器芯片102的变形的处理器芯片102A,处理器芯片102A具有4个CPU和L1单元700.0-3,这4个CPU和L1单元700.0-3连接到具有包括在处理器中的缓冲器/小型高速缓冲存储器112A的控制单元130A。其它部件(诸如DRAM控制器)可包括在处理器芯片中,但是为了简明,从图中被省略。根据各种实施方式,CPU和L1单元可分别包括一个或多个CPU以及一个或多个L1高速缓冲存储器(诸如指令和数据高速缓冲存储器)。尽管示出了4个CPU和L1单元,但是本领域普通技术人员应认识到,可使用更多或更少的单元。在一些实施例中,这些CPU和L1单元中的每个是相同的,而在一些实施例中,CPU和L1单元的一个或多个可以是不同的(即,包括具有更高或更低功率或性能特性的CPU或高速缓冲存储器)。在一些实施例中,在CPU和L1单元的一个或多个中实现整个缓冲器/小型高速缓冲存储器或缓冲器/小型高速缓冲存储器的一部分。
图7B示出了作为处理器芯片102的变形的处理器芯片102B,处理器芯片102B具有一对处理器701.0-1,所述一对处理器701.0-1连接到具有包括在处理器中的缓冲器/小型高速缓冲存储器112A的控制单元130A。其它部件(诸如DRAM控制器)可包括在处理器芯片中,但是为了简明,从图中被省略。如该图所示,所述处理器中的每个包括一对CPU和L1单元,所述一对CPU和L1单元连接到共享的L2高速缓冲存储器(诸如处理器701.0具有CPU和L1单元710.0-1和L2711.0)。接着,L2高速缓冲存储器连接到控制单元,以与缓冲器/小型高速缓冲存储器交换数据。尽管示出了这样一对处理器,每个处理器具有一对CPU,但是本领域普通技术人员应认识到,可在每个处理器中使用更多或更少的CPU,并且可使用更多或更少的处理器。在一些实施例中,每个处理器是相同的,而在一些实施例中,一个或多个处理器可以是不同的(诸如具有更多或更少的CPU)。在一些实施例中,这些CPU和L1单元中的每个是相同的,而在一些实施例中,一个或多个CPU和L1单元可以是不同的(即,具有更高或更低功率或性能特性的CPU或高速缓冲存储器)。
图7C示出了作为处理器芯片102的变形的处理器芯片102C,除了在单个处理器701中L2高速缓冲存储器资源是单个单元(L2711)之外,处理器芯片102C与处理器芯片102B(图7B)类似。其它部件(诸如DRAM控制器)可包括在处理器芯片中,但是为了简明,从图中被省略。在图7A和图7B中示出的实施例中,CPU和L1的数量、布置和特性可根据实施例而变化。
图7D示出了作为处理器芯片102的变形的处理器芯片102D,除了L2和缓冲器/小型高速缓冲存储器被组合之外,处理器芯片102D与处理器芯片102C(图7C)类似。控制单元130D除了适合于管理通过包括在L2711D中而实现的缓冲器/小型高速缓冲存储器112D之外,与控制单元130A类似,而L2711D除了包括所述缓冲器/小型高速缓冲存储器之外,与L2711类似。在一些实施例中,通过保留L2的一部分用作缓冲器/小型高速缓冲存储器,来实现包括缓冲器/小型高速缓冲存储器。所述保留可根据L2中的方式的数量或标识或者任何其它类似机制(参见本文中其它地方的“通过非可高速缓冲存取的DRAM存取的减少”章节,以获得更多信息)。在图7A-7C中示出实施例中,其它部件可包括在处理器芯片中,CPU和L1的数量、布置和特性可根据实施例而变化。
图7E示出了作为处理器芯片102E的处理器芯片102的变形,除了另外一层高速缓冲存储器插入到CPU和缓冲器/小型高速缓冲存储器之间作为L3720之外,处理器芯片102E与处理器芯片102B(图7B)类似。在图7A-7D中示出的实施例中,其它部件可包括在处理器芯片中,CPU、L1和L2的数量、布置和特性可根据实施例而变化。
图7F示出了作为处理器芯片102F的处理器芯片102的变形,除了L3和缓冲器/小型高速缓冲存储器被组合之外,处理器芯片102F与处理器芯片102E(图7E)类似。控制单元130F除了适合于管理通过包括在L3720F中而实现的缓冲器/小型高速缓冲存储器112F之外,与控制单元130A类似,而L3720F除了包括所述缓冲器/小型高速缓冲存储器之外,与L3720类似。与图7D所示的实施例类似,可通过保留L3的一部分用作缓冲器/小型高速缓冲存储器,来实现包括缓冲器/小型高速缓冲存储器。所述保留可根据L3中的方式的数量或标识或者任何其它类似机制(参见本文中其它地方的“通过非可高速缓冲存取的DRAM存取的减少”章节,以获得更多信息)。
结论
虽然为了便于清楚理解的目的已经详细地描述了上述实施例,但是本发明不限于所提供的细节。存在多种实现本发明的方式。所公开的实施例是示意性的,而不是限制性的。
应该理解,结构、布置和使用中的多种变形可与本教导一致,并且在发布的本专利所附的权利要求的范围内。例如,互连和功能单元比特宽度、时钟速度以及使用的技术的类型在每个组成块中通常可被改变。赋予互连和逻辑的名称仅仅是示意性的,而不应被解释为限制所教导的构思。流程、流程图处理、动作以及功能部件的次序和布置通常可被改变。另外,除非特别有相反的描述,否则指定的值范围、使用的最大值和最小值、或其它特殊规范(诸如非可高速缓冲引用的数量和类型,DMA装置的数量和类型,缓冲器/小型高速缓冲存储器的数量、容量和组织,缓冲器/小型高速缓冲存储器结构和相关联的模式寄存器中的字段的数量、宽度和组织,以及寄存器和缓冲器中的条目或阶段的数量)仅仅是示意性的实施例,可被预期为跟踪实现技术中的改进和变化,并且不应被解释为限制。
可采用本领域普通技术人员已知的功能上等同的技术(而不是已经示出的技术),来实现各种组件、子系统、功能、操作、例程和子例程。还应理解,可按照硬件(即,一般专用电路)或软件(即,通过编程的控制器或处理器的某种方式)来将多个设计功能方面实现为快速处理(其便于先前在硬件中的功能移植到软件中)和更高集成密度(其便于先前在软件中的功能移植到硬件中)的技术趋势和实现依赖设计约束的功能。特定的变形可包括(但不限于):划分的差别;不同的形式因素和配置;不同的操作系统和其它系统软件的使用;不同的接口标准、网络协议或通信链路的使用;以及当根据特定应用的独有工程和商业约束来实现这里所教导的构思时将被预期的其它变形。
已经通过细节和周围前后关系很好地示出了这些实施例,超出了所教导的构思的多个方面的最小实现所需的内容。本领域普通技术人员应认识到,这些变形可省略所公开的组件或特征,而不同改变剩余部件之间的基本协作。因此,应该理解,不需要这么多的所公开的细节来实现所教导的构思的各个方面。在这个意义上,剩余部件与现有技术是不同的,可被省略的组件和特征不对这里所教导的构思进行限制。
所有这些所设计的变形包括对示意性实施例所传达的教导的非实质性改变。还应理解,这里所教导的构思对于其它计算和联网应用具有广泛应用性,并不限于示出的实施例的产业或特定应用。因此,本发明应被解释为包括落入发布的本专利所附的权利要求的范围内的所有可能修改和变形。

Claims (13)

1.一种操作处理器系统的方法,包括:
用数据预填充设置在处理器中的缓冲器/微型高速缓冲存储器;和
配置所述处理器用于在所述预填充以后进入低功率并且禁止监听模式,
其中,当所述处理器处于低功率和禁止监听模式时,所述缓冲器/微型高速缓冲存储器响应外围装置的请求,
其中,所述响应请求的步骤包括:响应于来自所述外围装置的读请求,由缓冲器/微型高速缓冲存储器向外围装置提供数据的第一部分,响应于来自所述外围装置的写请求,在缓冲器/微型高速缓冲存储器中修改所述数据的第二部分。
2.如权利要求1所述的方法,其中,所述第二部分响应于所述写请求而被清洗。
3.如权利要求1所述的方法,其中,缓冲器/微型高速缓冲存储器与用于所述外围装置的控制器在单个芯片上。
4.如权利要求1所述的方法,其中,用于预填充所述缓冲器的数据由处理器提供。
5.如权利要求1所述的方法,其中,用于预填充所述缓冲器的数据由外围装置的控制器提供。
6.如权利要求1所述的方法,其中,用于预填充所述缓冲器的数据由外围装置提供。
7.一种处理器系统,包括:
包括缓冲器/微型高速缓冲存储器的处理器;和
与所述处理器连接的一个或多个外围装置,
其中,所述缓冲器/微型高速缓冲存储器与所述外围装置的至少一个连接,
其中,用数据预填充所述缓冲器/微型高速缓冲存储器数据,
其中,配置所述处理器用于在所述预填充之后进入低功率并且禁止监听模式,并且
其中,当所述处理器处于低功率并且禁止监听模式时,所述缓冲器/微型高速缓冲存储器响应来自所述外围装置的至少一个的请求,
其中,将所述缓冲器/微型高速缓冲存储器配置为通过响应于来自所述外围装置的读请求,从所述缓冲器/微型高速缓冲存储器向外围装置提供数据的第一部分来响应所述请求,以及通过响应于来自所述外围装置的写请求,在所述缓冲器/微型高速缓冲存储器中修改数据的第二部分来响应所述请求。
8.如权利要求7所述的系统,其中,在所述写请求后所述第二部分被清洗。
9.如权利要求7所述的系统,其中,所述缓冲器/微型高速缓冲存储器识别从所述外围装置发起的请求。
10.如权利要求7所述的系统,其中,缓冲器/微型高速缓冲存储器与用于所述外围装置的控制器在单个芯片上。
11.如权利要求7所述的系统,其中,用于预填充所述缓冲器的数据由处理器提供。
12.如权利要求10所述的系统,其中,用于预填充所述缓冲器的数据由外围装置的控制器提供。
13.如权利要求7所述的系统,其中,用于预填充所述缓冲器的数据由外围装置提供。
CN2006800507749A 2005-11-15 2006-11-14 当处理器处于低功率状态时可为后台dma装置提供数据的小型高功效高速缓冲存储器 Active CN101356510B (zh)

Applications Claiming Priority (13)

Application Number Priority Date Filing Date Title
US73673605P 2005-11-15 2005-11-15
US73663205P 2005-11-15 2005-11-15
US60/736,632 2005-11-15
US60/736,736 2005-11-15
US76122006P 2006-01-23 2006-01-23
US60/761,220 2006-01-23
US76192506P 2006-01-25 2006-01-25
US60/761,925 2006-01-25
US11/351,058 2006-02-09
US11/351,058 US7412570B2 (en) 2005-11-15 2006-02-09 Small and power-efficient cache that can provide data for background DNA devices while the processor is in a low-power state
US11/559,069 US7958312B2 (en) 2005-11-15 2006-11-13 Small and power-efficient cache that can provide data for background DMA devices while the processor is in a low-power state
US11/559,069 2006-11-13
PCT/US2006/044095 WO2007059085A2 (en) 2005-11-15 2006-11-14 Small and power-efficient cache that can provide data for background dma devices while the processor is in a low-power state

Publications (2)

Publication Number Publication Date
CN101356510A CN101356510A (zh) 2009-01-28
CN101356510B true CN101356510B (zh) 2013-04-03

Family

ID=40308486

Family Applications (2)

Application Number Title Priority Date Filing Date
CN2006800507749A Active CN101356510B (zh) 2005-11-15 2006-11-14 当处理器处于低功率状态时可为后台dma装置提供数据的小型高功效高速缓冲存储器
CN2006800508506A Active CN101356511B (zh) 2005-11-15 2006-11-14 通过dram存取的功率转换

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN2006800508506A Active CN101356511B (zh) 2005-11-15 2006-11-14 通过dram存取的功率转换

Country Status (1)

Country Link
CN (2) CN101356510B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120152576A1 (en) * 2010-12-15 2012-06-21 Valhalla Technologies, Llc Extra area down-hole hammer apparatus and method
WO2013147914A1 (en) * 2012-03-31 2013-10-03 Intel Corporation Controlling power management in micro-servers
US9373182B2 (en) * 2012-08-17 2016-06-21 Intel Corporation Memory sharing via a unified memory architecture
CN104407985B (zh) * 2014-12-15 2018-04-03 泰斗微电子科技有限公司 存储器地址映射方法及存储器地址映射系统
CN109727183B (zh) * 2018-12-11 2023-06-23 中国航空工业集团公司西安航空计算技术研究所 一种图形渲染缓冲区压缩表的调度方法及装置
CN110569001B (zh) * 2019-09-17 2020-09-22 深圳忆联信息系统有限公司 基于固态硬盘的L2P表dirty位标记方法和装置
CN112969002B (zh) * 2021-02-04 2023-07-14 浙江大华技术股份有限公司 基于PCIe协议的图像传输方法和装置、存储介质

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6219745B1 (en) * 1998-04-15 2001-04-17 Advanced Micro Devices, Inc. System and method for entering a stream read buffer mode to store non-cacheable or block data
KR100769557B1 (ko) * 1999-11-24 2007-10-23 엔엑스피 비 브이 데이터 처리 시스템 및 데이터 처리 유닛
JP3857661B2 (ja) * 2003-03-13 2006-12-13 インターナショナル・ビジネス・マシーンズ・コーポレーション 情報処理装置、プログラム、及び記録媒体

Also Published As

Publication number Publication date
CN101356511B (zh) 2012-01-11
CN101356511A (zh) 2009-01-28
CN101356510A (zh) 2009-01-28

Similar Documents

Publication Publication Date Title
US7958312B2 (en) Small and power-efficient cache that can provide data for background DMA devices while the processor is in a low-power state
US7412570B2 (en) Small and power-efficient cache that can provide data for background DNA devices while the processor is in a low-power state
US7516274B2 (en) Power conservation via DRAM access reduction
US7899990B2 (en) Power conservation via DRAM access
CN101356510B (zh) 当处理器处于低功率状态时可为后台dma装置提供数据的小型高功效高速缓冲存储器
US6374330B1 (en) Cache-coherency protocol with upstream undefined state
US6141733A (en) Cache coherency protocol with independent implementation of optimized cache operations
CN100416515C (zh) 高速缓冲存储器线清洗指令和执行该指令的方法,装置以及系统
US6345342B1 (en) Cache coherency protocol employing a read operation including a programmable flag to indicate deallocation of an intervened cache line
EP0598535B1 (en) Pending write-back controller for a cache controller coupled to a packet switched memory bus
US6018791A (en) Apparatus and method of maintaining cache coherency in a multi-processor computer system with global and local recently read states
US7076609B2 (en) Cache sharing for a chip multiprocessor or multiprocessing system
US5943684A (en) Method and system of providing a cache-coherency protocol for maintaining cache coherency within a multiprocessor data-processing system
US7395376B2 (en) Method, apparatus, and computer program product for a cache coherency protocol state that predicts locations of shared memory blocks
US5787478A (en) Method and system for implementing a cache coherency mechanism for utilization within a non-inclusive cache memory hierarchy
CN101228512B (zh) 用于管理高速缓冲存储器存取的方法和设备
US6185658B1 (en) Cache with enhanced victim selection using the coherency states of cache lines
US20050097277A1 (en) Low power cache architecture
US6334172B1 (en) Cache coherency protocol with tagged state for modified values
CN102483719A (zh) 基于块的非透明高速缓存
US20110302374A1 (en) Local and global memory request predictor
US6247098B1 (en) Cache coherency protocol with selectively implemented tagged state
CN100592268C (zh) 用于多接口高速缓存中的联合高速缓存相干状态的方法和装置
US6701416B1 (en) Cache coherency protocol with tagged intervention of modified values
US6341336B1 (en) Cache coherency protocol having tagged state used with cross-bars

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant