CN103348333B - 用于分级高速缓存设计中的高速缓存之间的高效通信的方法和装置 - Google Patents
用于分级高速缓存设计中的高速缓存之间的高效通信的方法和装置 Download PDFInfo
- Publication number
- CN103348333B CN103348333B CN201180066503.3A CN201180066503A CN103348333B CN 103348333 B CN103348333 B CN 103348333B CN 201180066503 A CN201180066503 A CN 201180066503A CN 103348333 B CN103348333 B CN 103348333B
- Authority
- CN
- China
- Prior art keywords
- cache
- data
- line
- transference
- level
- 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.)
- Expired - Fee Related
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0811—Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0844—Multiple simultaneous or quasi-simultaneous cache accessing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0893—Caches characterised by their organisation or structure
- G06F12/0897—Caches characterised by their organisation or structure with two or more cache hierarchy levels
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
根据本文所公开的实施例,提供用于在分级高速缓存设计中的高速缓存之间实现高效通信的方法、系统、机制、技术和装置。例如,在一个实施例中,这种装置可以包括具有数据总线的集成电路;与数据总线可通信地接口的较低级高速缓存;与数据总线可通信地接口的较高级高速缓存;一个或多个数据缓冲器以及一个或多个非数据缓冲器。在这种实施例中,数据缓冲器与数据总线可通信地接口,并且一个或多个数据缓冲器中的每一个具有缓冲整个高速缓存线的缓冲存储器、指示相应数据缓冲器状态的一个或多个控制位以及与该整个高速缓存线相关联的地址。在这种实施例中,无数据缓冲器不能存储整个高速缓存线以及具有指示相应无数据缓冲器状态的一个或多个控制位和用于与相应无数据缓冲器相关联的高速缓存间转移线的地址。在这种实施例中,高速缓存间转移逻辑用于经由数据总线从较高级高速缓存请求高速缓存间转移线,并用于进一步将高速缓存间转移线从数据总线写入较低级高速缓存中。
Description
版权声明
本专利文件的公开的部分内容包括受到版权保护的材料。版权所有者不反对任何人复制如呈现在专利和商标局专利文件或记录中的本专利文档或专利公开内容,但在别的方面无论如何都保留所有版权。
技术领域
本文所述的主题一般涉及计算领域,尤其涉及用于在分级高速缓存设计中的高速缓存之间实现高效通信的系统和方法。
背景
背景部分中所述的主题不应该仅仅由于在背景部分中有所提及而被假定为现有技术。类似地,背景部分中提及的问题或者与背景部分的主题相关联的问题不应被假定为先前在本领域中已被意识到。背景部分的主题仅仅代表不同的方法,其自身仍然可能对应于要求保护主题的实施例。
常规的分级高速缓存设计要求来自较高级高速缓存的高速缓存请求首先分配缓冲器,然后向所需的特定高速缓存线的较高级高速缓存发放后续请求。之后,当所需的高速缓存线到达时,将其写入先前分配的缓冲器。当来自较高级高速缓存的请求被完成并且返回到所分配缓冲器的所有必要请求属性当前具有所需的高速缓存线时,使缓冲器就绪用于替换操作,使得当前存储在所分配缓冲器中的所需的高速缓存线能够被插入或替换到较低级高速缓存中。在该阶段,所需的高速缓存线并不在需要它的较低级高速缓存中,而是被缓冲并在当前就绪以被放置到较低级高速缓存中。
调度器随后从就绪状态的全部现有缓冲器挑选具有所需高速缓存线的所分配缓冲器,并且所需高速缓存线将被从缓冲器移除并经由替换(例如,驱逐另一高速缓存线)或插入而被移入较低级高速缓存。所分配的缓冲器不再被需要并因此被解除分配,并且在这一阶段,所需的高速缓存线在较低级高速缓存中对需要该高速缓存线的任何实体、操作或请求者可用。
由于所需高速缓存线向较低级高速缓存中的替换或插入操作必需利用空闲的读写端口来执行其操作,所有使用该高速缓存的其它高速缓存存储和高速缓存加载操作都被停止以释放必要的读写端口,因此允许将所需高速缓存线插入到较低级高速缓存中以继续进行。
常规实现的用于将高速缓存线从较高级高速缓存检取到需要它的较低级高速缓存中的协议因此面临至少两个主要问题。第一,由于较长的缓冲持续时间,对于这种请求呈现出较低的吞吐量。第二,在每个实例中还都需要严酷或强制的读写端口接管降级性能。
因此,现有技术状态可以得益于本文描述的用于在分级高速缓存设计中的高速缓存之间实现高效通信的系统和方法。
附图简述
实施例作为示例而非限制来描述,并且通过参照一下详细描述并结合附图而得到更全面的理解,在附图中:
图1示出实施例可根据其进行操作的示例性架构;
图2示出实施例可根据其进行操作的替代示例性架构;
图3示出实施例可根据其进行操作的另一替代示例性架构;
图4示出实施例可根据其操作、被安装、被集成或被配置的系统的图形表示;
图5是示出根据所描述实施例的用于在分级高速缓存设计中的高速缓存之间实现高效通信的方法的流程图;
图6是根据一个实施例的计算机系统的框图;
图7是根据一个实施例的计算机系统的框图;
图8是根据一个实施例的计算机系统的框图;
图9示出其中集成了根据实施例所述的电路的平板计算设备和手持式智能电话;
图10是其中使用触摸屏界面连接器的平板计算设备、智能电话或其它移动设备的实施例的框图;
图11是根据一个实施例的IP核开发系统的框图;
图12示出根据一个实施例的架构仿真系统;
图13示出根据一个实施例的用于翻译指令的系统。
详细描述
本文描述用于在分级高速缓存设计中的高速缓存之间实现高效通信的系统和方法。例如,在一个实施例中,这种装置可以包括具有数据总线的集成电路;与数据总线可通信地接口的较低级高速缓存;与数据总线可通信地接口的较高级高速缓存;一个或多个数据缓冲器以及一个或多个无数据缓冲器。在这种实施例中,数据缓冲器与数据总线可通信地接口,并且一个或多个数据缓冲器中的每一个具有:缓冲完整高速缓存线的缓冲存储器、指示相应数据缓冲器状态的一个或多个控制位、以及与该完整高速缓存线相关联的地址。在这种实施例中,无数据缓冲器不能存储完整高速缓存线,并且具有:指示相应无数据缓冲器状态的一个或多个控制位和用于与相应无数据缓冲器相关联的高速缓存间转移线的地址。在这种实施例中,高速缓存间转移逻辑用于经由数据总线从较高级高速缓存请求高速缓存间转移线,并用于进一步将高速缓存线从数据总线写入较低级高速缓存中。
一般而言,更靠近CPU的存储器能被更快地访问。CPU内的存储器可被称为高速缓存,并可在不同分级上被访问,例如1级高速缓存(L1高速缓存)和2级高速缓存(L2高速缓存)。系统存储器(诸如与主板耦合的存储器模块)也是可用的,诸如与CPU分离但可被CPU访问的外部可用存储器可被称为,例如,芯片外高速缓存或3级高速缓存(L3高速缓存),等等,但是并非总是如此,因为第三级高速缓存(L3高速缓存)可以在芯片上或者“管芯上”并因此在CPU内部。
CPU高速缓存(诸如L1高速缓存)被计算机的中央处理单元使用,以减小访问存储器的平均时间。L1高速缓存是小而快的存储器,存储来自最常使用的主存储器位置的数据的副本。L2高速缓存可以较大,但访问较慢。而且,附加存储器(无论是用作高速缓存的芯片上或外部的可用系统存储器)可以比小而靠近的CPU高速缓存级更大,但访问更慢。只要大多数存储器访问是高速缓存的存储器位置,存储器访问的平均等待时间就会更接近高速缓存等待时间,而不是主存储器等待时间。
当处理器需要对主存储器中的位置进行读或写时,它首先检查在其高速缓存(例如L1、L2高速缓存等)之一中是否有该数据的副本,当可用时,处理器对高速缓存进行读或写,来代替从系统主存储器搜索该数据,藉此提供比对系统主存储器进行读或写更快的结果。
由于较长的缓冲持续时间,常规的机制将吞吐量限制在高速缓存。通过修改机制(实现替换操作),可以获得改进的吞吐量。例如,吞吐量以及例如CPU上的L1高速缓存与L2高速缓存之间或CPU上的L2高速缓存与外部可访问L3高速缓存之间的通信的效率的提高可以提高CPU以及关联芯片组的总体操作效率。常规解决方案要求,当将线替换到高速缓存中时,对未命中高速缓存(例如该高速缓存中不存在该数据)分配缓冲器,然后对该数据的请求去往上级高速缓存,例如L2高速缓存而非L1高速缓存,或L3高速缓存而非L2高速缓存,等等。然后,请求前进到上级高速缓存,响应于此,所请求的数据被返回并存储在所分配的缓冲器中,其中调度器会协调用于所检索的、当前所缓存的数据的替换操作,以将所检索的数据插入到较低级高速缓存中。为了执行该替换操作,对高速缓存的存储和加载被停止,以释放读写端口,此时,从较高级高速缓存检索的数据经由替换操作被插入到较低级高速缓存中,按需执行驱逐。
因此,期望缩短缓冲持续时间或执行这种高速缓存间转移所需的步骤数,因为步骤数的减少会提供增加的效率。而且,因为每个从较高级向较低级移动数据的高速缓存间请求需要中断存储和加载,所以由于其它进程流和操作的终止,体现出系统降级。因此,期望在不必要停止正在对高速缓存的存储和加载的情况下,实现这种高速缓存数据转换以移动数据。
在以下的描述中,阐述了很多具体细节,诸如具体系统、语言、组件等的示例,以提供对各实施例的透彻理解。然而,对本领域普通技术人员显而易见的是,不一定要采用这些具体细节来实施本文所公开的实施例。在其它实例中,没有详细描述公知的材料和方法,以便避免不必要地混淆所公开的实施例。
除了附图中示出和本文描述的各种硬件组件之外,实施例还包括一下描述的各种操作。根据这些实施例描述的操作可以由硬件组件来执行,或者可以具体化为机器可执行指令,该指令可用于使通过该指令编程的通用或专用处理器执行这些操作。或者,操作也可由硬件和软件的组合来执行。
实施例还涉及用于执行本文所公开的操作的装置。该装置可专门构造成用于所需目的,或者它可以是由存储在计算机中的计算机程序选择性地激活或重新配置的通用计算机。这种计算机程序可以存储在计算机可读存储介质中,诸如但不限于,包括软盘、光盘、CD-ROM和磁光盘之类的任何类型的盘,只读存储器(ROM),随机存取存储器(RAM),EPROM,EEPROM,磁卡或光学卡,或者适于存储电子指令的任何类型的介质,每种介质通过计算机系统总线来耦合。
术语“耦合”可以指代两个或更多元件直接接触(物理、电学、磁学、光学等)或者两个或更多元件彼此不直接接触,但仍然彼此协作和/或交互。本文呈现的算法和显示并非固有地相关于任何特定计算机或其它装置。可以将各种通用系统与根据本文教导的程序一起使用,或可以证明构造更专门的装置来实现所要求的方法步骤是方便的。用于多种这些系统的所需结构将从以下描述中出现。另外,不参考任何特定编程语言来描述实施例。将会理解,可使用多种编程语言来实现本文描述的实施例的教导。
所公开的实施例中的任一个可以单独使用或以任何组合彼此结合使用。虽然多个实施例可能部分地受到常规技术和方法的缺陷的启发,其中在说明书中描述或间接提到一些常规技术和方法,但是实施例并不一定针对或解决这些缺陷中的任一个,而是可以仅仅针对这些缺陷中的一些、可以不针对这些缺陷、或者可以涉及并未直接讨论的不同缺陷和问题。
图1示出实施例可根据其进行操作的示例性架构100。根据所述的实施例,所示架构100在分级高速缓存设计的高速缓存之间实现高效通信。
可以通过消除需要将所缓冲的高速缓存线写入高速缓存中的调度器对写端口的严酷接管事件,来改进效率。消除高速缓存写端口接管的直接方法是添加另一高速缓存写端口。然而,如此会在集成电路面积以及集成电路功率方面成本高昂。
根据所公开的实施例,用于存储被高速缓存的数据的高速缓存线的单元(诸如存储器单元或“ram单元”)可被组织成组。然后,代理可以通过复用器(mux)对组进行读或写。例如,并发的替换或写入操作可以通过mux一起对集合-关联高速缓存进行写入,而无需添加第二写端口来支持第二并发替换或存储操作。
将写操作并发地复用到不同组中实现了更高吞吐量,而无需增加硬件,例如通过添加附加写端口。增加组的数量允许对ram单元组的更多的并发写/写、读/读或写/读操作,但是每次分组需要对每组引入附加mux。
如图所示,架构100支持每路4个组集合。例如,路0120A可以是较低级高速缓存或1级高速缓存(L1高速缓存),且路1120B可以是较高级高速缓存或2级高速缓存(L2高速缓存)。
路0和路1120A-B中的每一个包括4组ram单元以存储高速缓存线。路0120A包括ram单元组105A、106A、107A和108A。路1120B类似地包括4组ram单元105B、106B、107B和108B。每个路0和路1的ram单元组可以通过复用器或mux130连接,复用器由代理来管理。代理0110A和代理1115A管理对路0120A的输入/输出操作。例如,当如所示地通过每组的分别耦合的mux130对相异和不同ram单元组105A-108A进行写入时,两个并发写入、更新、插入、加载、存储或读取操作通过mux130经由两个代理110A和115A来支持。
路1120B的代理0110B和代理1115B类似地支持通过如所示地每个ram单元组的分别耦合的mux130对路1120B的ram单元组105B-108B进行输入/输出操作。
路0和路1的每一个通过小型解码器125互连,该小型解码器125向ram单元组105A-108A和105B-108B中的每一个以及向不同路120A-B发送不同的写使能,因此实现例如写操作源对不同ram单元组和路的同时写入。例如,两个数据源在每组集合(ram单元)之前被复用,实现将两个源同时写入不同组集合(ram单元)。
图2示出实施例可根据其进行操作的替代示例性架构200。在此,根据所公开的实施例示出两个示例性高速缓存级之间的相互通信。例如,示出L1高速缓存210(例如路0)和L2高速缓存215(例如路1),以及具有地址220A块和控制225A块或位的数据缓冲器235。注意到,数据缓冲器235包括能够存储整个高速缓存线的数据块230。数据块230是数据缓冲器235的资源最密集的部分,需要成比例地更多的实现集成电路的功率和面积。引入更多数据缓冲器235需要在这种集成电路上分配更多的功率和面积,并且附加的功率和面积的大部分由每个数据缓冲器235的数据块230部分来消耗,以便存储或缓存完整的高速缓存线。
附加示出的是无数据缓冲器234。无数据缓冲器234还包括地址220B块和控制225B块或位。注意到,无数据缓冲器234缺少数据缓冲器235的数据块230。无数据缓冲器234由于无需数据块230,在实现电路的面积方面要小得多,并且与所示的数据缓冲器235不同,附加地消耗成比例地更少的功率。然而,无数据缓冲器234不能存储完整高速缓存线。尽管采用术语“缓冲器”,但无数据缓冲器不能缓冲高速缓存线,因为它缺乏用于容纳、存储、缓冲或保持这种高速缓存线的数据块230。数据缓冲器235和无数据缓冲器234的每一个用于不同目的,如一下更详细描述。
对于来自高速缓存的大多数请求,数据以单个组块到达,并且被存储在控制225A-B块内的线状态位指示用于与所请求数据相对应的高速缓存线的独占或共享状态。线状态位用于指示从较高级高速缓存向较低级的数据请求操作的完成。意识到其中线状态位指示高速缓存线请求的完成的情形,逻辑能够在数据到达时发起替换操作,并在数据到达时立即执行替换操作,因此绕过数据缓冲器235并附加地无需调度器来监视数据缓冲器235以及随后从数据缓冲器235的数据块230检索高速缓存线并将其移动到高速缓存中,诸如到L1高速缓存210中。作为替代,无数据缓冲器234可被分配,使得地址220B和控制225B信息可被适当追踪,但是由于从较高级高速缓存(诸如L2高速缓存215)检索的高速缓存线从未被数据缓冲器235缓冲,无数据缓冲器234不需要数据块230,并且作为替代,无数据缓冲器可以被立即解除分配且所检索的高速缓存线被引导到L1高速缓存210中,绕过任何中间缓冲操作。这种方案更加高效并附加地缩短高速缓存线的高速缓存间转移的流水线持续时间。
无数据缓冲器234因此被用于任何请求,其中所接收的来自较高级高速缓存的高速缓存线被立即替换到较低级高速缓存中。必要时,数据缓冲器235可以仍用于接收和缓冲不能被直接立即写入相应高速缓存中的高速缓存线。例如,在所请求的高速缓存线必需被引导至特定地址并且对与高速缓存进行交互存在争用的情况下,高速缓存线可经由数据块230被暂时缓冲到具有相应数据存储组件的数据存储器235中,使得调度器可以进行安排以保护对将所缓冲高速缓存线写入高速缓存的适当地址空间所必需的写端口的访问。
替换操作比针对地址的写入更灵活,因为高速缓存间转移逻辑并不受限于所请求的高速缓存线必需被写入较低级高速缓存的情形,因此未被争用的高速缓存的部分(诸如低级或L1高速缓存210内如图1所示的ram单元组105A-108A之一)可被选择用于在收到时将所检索的高速缓存线插入高速缓存中。
因此,根据一个实施例,针对地址的写操作241可被呈现给具有足以存储高速缓存线的数据块230组件的数据缓冲器235,且替换操作242可被呈现给缺乏数据块230组件的无数据缓冲器234,因为替换操作不需要高速缓存线的缓冲服务。请求243被示出为向L2高速缓存215传递,随后在数据、状态和完全到达期间的替换被直接处理到L1高速缓存210,如从L2高速缓存215向L1高速缓存210传递的高速缓存间转移线244所示的。
图3示出实施例可根据其进行操作的另一替代示例性架构300例如,根据一个实施例示出集成电路301,其中该集成电路包括数据总线315、与数据总线315可通信地接口的较低级高速缓存305、与数据总线315可通信地接口的较高级高速缓存310、与数据总线315可通信地接口的一个或多个数据缓冲器235、与数据总线315可通信地接口的一个或多个无数据缓冲器234、以及高速缓存间转移逻辑325。附加示出的是数据缓冲器235的子组件(其包括地址220、控制225A和存储高速缓存线的数据块230组件)以及无数据缓冲器234的子组件(其包括地址220B和控制225B),但是注意到,无数据缓冲器234缺乏存储高速缓存线的数据块230组件。最后,高速缓存转移线244被示为从较高级高速缓存310向较低级高速缓存305转移。
根据一个实施例,一个或多个数据缓冲器235的每一个包括缓冲完整高速缓存线的缓冲存储器(数据块230)、指示相应数据缓冲器235的状态的一个或多个控制225A位以及与完整高速缓存线相关联的地址220A。
在一个实施例中,一个或多个无数据缓冲器234的每一个不能存储完整高速缓存线。这种无数据缓冲器234包括指示相应无数据缓冲器234的状态的一个或多个控制225B位以及与相应无数据缓冲器234相关联的高速缓存转移线244的地址220B。与具有附加数据块230组件(诸如,缓冲存储器)的数据缓冲器235不同,通过对相应的无数据缓冲器234仅包括控制225B和地址220B,缓冲器的数量可能显著增加,而无需像将具有这种数据块230组件的附加数据缓冲器235并入集成电路301所需的一样地分配大量的集成电路301的功率和面积。通过请求数据并且将所请求的高速缓存间转移线244从数据总线315直接引导到较低级高速缓存305而不是引导到缓冲器或队列中、由此使得对较低级高速缓存305的回写在高速缓存间转移线244的数据到达时发生,无需对高速缓存转移线244进行排队或缓冲,因为转移是在行进中完成的。虽然无数据缓冲器234可以被分配以支持高速缓存间转移功能,但是无数据缓冲器234所需的控制225B和地址220B的资源成本与能够作为高速缓存间转移的一部分而缓冲高速缓存间转移线244的数据缓冲器235相比要小。
在一个实施例中,高速缓存间转移逻辑325经由数据总线315从较高级高速缓存310请求高速缓存间转移线244,并且高速缓存间转移逻辑325进一步将高速缓存间转移线244从数据总线315写入较低级高速缓存305中。
在一个实施例中,请求高速缓存间转移线包括(1)高速缓存间转移逻辑325响应于较低级高速缓存305处的高速缓存未命中而向高速缓存间转移线244分配一个或多个无数据缓冲器234之一;以及还包括(2)高速缓存间转移逻辑325将高速缓存间转移线244从数据总线315直接引导到较低级高速缓存305,绕过所分配的无数据缓冲器。例如,响应于请求,高速缓存间转移线244被置于数据总线315上,然后与将高速缓存间转移线244引导到缓冲存储器中不同,高速缓存间转移线244从数据总线315被直接发送并进入较低级高速缓存305。
在一个实施例中,高速缓存间转移逻辑325响应于较低级高速缓存305处的高速缓存未命中而请求高速缓存间转移线244。例如,这种高速缓存未命中可以触发高速缓存转移功能以参与所请求高速缓存线在相对于集成电路310在芯片上或在芯片外的较高级高速缓存处可用(诸如所示的L2高速缓存310)或更为高级(诸如L3高速缓存)。在一个实施例中,较低级高速缓存305是并入集成电路301中的芯片上1级高速缓存(L1高速缓存),并且较高级高速缓存310是并入集成电路301中的芯片上2级高速缓存(L2高速缓存)。在替换实施例中,芯片上1级高速缓存或芯片上2级高速缓存还与芯片外3级高速缓存(L3高速缓存)通信,以执行从L3高速缓存到芯片上1级高速缓存或芯片上2级高速缓存之一的高速缓存间转移。
根据一个实施例,将高速缓存间转移线244直接引导到较低级高速缓存305中还包括高速缓存间转移逻辑325发起替换操作以将高速缓存间转移线244插入较低级高速缓存305中。在一个实施例中,替换操作与从较高级高速缓存310请求高速缓存间转移线244并发地发起。为了缩短常规可用机制的高速缓存间转移功能的持续时间,期望移除特定的功能操作。这些操作之一是如上所述的缓冲。可被移除以改进效率的另一这类操作是在收到所请求高速缓存间转移线244与后续的调度替换操作之间的等待时段。根据所公开的实施例,这种替换操作与发起对高速缓存转移线244的请求并发地或同时被触发,这缩短了常规技术中经历的时滞。通过与对高速缓存间转移线244的请求一起触发替换操作,替换操作被启用以捕捉曾被置于数据总线315上的返回的高速缓存间转移线244并简单地将其引导到较低级高速缓存310中,这既降低高速缓存间转移功能流水线的总持续时间,又附加地无需任何缓冲步骤或操作。使用这种技术,调度器甚至无需监控缓冲存储器,因为高速缓存间转移线244并未被置于缓冲存储器中。然而在实践中,并非所有的高速缓存间转移功能都允许无缓冲器的操作。例如,在目标高速缓存的争用问题强制缓冲或者需要附加时间来处理特殊情形的情况下,可以仍然使用缓冲,并且调度器可以监视并随后执行所缓冲的高速缓存线从缓冲存储器(例如数据缓冲器235的数据块230)进入目标高速缓存的必要转移。
在一个实施例中,替换操作包括至少部分地基于用于驱逐的高速缓存线驻留在较低级高速缓存30中当前没有争用的部分内,从较低级高速缓存305选择用于驱逐的高速缓存线,并且还包括将高速缓存间转移线244引导到通过驱逐高速缓存线而可用的位置。这种替换操作可以利用与高速缓存间转移线244相关联的无数据缓冲器234的地址220B。还可以提供到目标高速缓存内的目标目的地的映射,诸如使用关联地址220B的低级高速缓存305。高速缓存间转移逻辑325可以确定对于目标高速缓存的目标部分是否存在争用。例如,先前描述了ram单元组105A-108A。一些可能不可用,而其它的可能可用于输入/输出操作。高速缓存间转移逻辑325可以确定哪里存在争用且哪里不存在争用,随后保护读/写端口(例如通过代理110A和115A之一),然后驱逐高速缓存线并使所请求和所检索的高速缓存间转移线244存储在通过驱逐高速缓存线而释放的位置。这种争用确定可以基于策略、实时监视、地址范围等等。在一个实施例中,高速缓存间转移逻辑325分配多个数据缓冲器235之一以缓冲所驱逐的高速缓存线并将所驱逐的高速缓存线引导到所分配的数据缓冲器中用于基于驱逐策略的最终部署(例如清除脏位(dirty bit)、同步等等)。
在一个实施例中,较低级高速缓存305包括被安排成两个或更多个组的多个存储器单元,并且两个或更多个组的每一个可以通过实现同时对相应组中两个不同存储器单元进行写/写、读/读、或写/读操作的复用器来访问。例如,存储器单元(例如ram单元等)可被划分成在8、16、或64组等等之间。分组过大会增加争用。分组过小会导致开销增加以及由所需复用器引起的附加硬件要求。因此,一些分析适于对给定电路实现建模适当数量的分组。一旦划分成组,写/写、读/读、或读/写操作可以通过复用器(和代理(如果必要))被引导到存储器单元,只要两者被引导到两个不同组。例如,两个替换操作、两个加载操作、两个存储操作等等可被执行,只要它们不被引导至单个存储器单元组。
在一个实施例中,将高速缓存间转移线244从数据总线315写入较低级高速缓存305中的高速缓存间转移逻辑325包括高速缓存间转移逻辑325:(1)标识两个或更多个组中可应用写操作的一个;(2)选择所标识的组;以及(3)指令负责所选组的代理将高速缓存间转移线244从数据总线315写入所选组中。因此,争用确定可以标识可用的组,并且相应地选择该组用于履行替换操作。
在替代实施例中,将高速缓存间转移线244从数据总线315写入较低级高速缓存305中的高速缓存间转移逻辑325包括高速缓存间转移逻辑325:(1)标识全部两个或更多个组的争用;(2)停止对组之一的写操作;以及(2)指令负责与被停止的写操作相关联的组的代理将高速缓存间转移线244从数据总线315写入该组中。
写操作的停止可被称为读/写端口的严酷接管。有必要使读/写端口对所选位置可用,诸如目标较低级高速缓存305内的组中的存储器单元,使得所选位置就绪并等待接收来自上级高速缓存310(在收到后)的高速缓存间转移线244以在无缓冲高速缓存间转移模式中操作。当数据从上级高速缓存到达时,需要有位置等待,能够用于中间回写,因此必要时,在到达的准备阶段停止加载端口或读/写端口。虽然根据一些实施例有时可能发生停止,但是这种停止与高速缓存间转移线244的请求并发地被触发,并被结合到单个循环中,并因此与常规机制相比在时间上短得多,其中常规机制执行请求、缓冲、调度、停止,然后移动所缓冲的数据,因此需要多于单个循环来达到相同结果。
在一个实施例中,对存储在较低级高速缓存305或较高级高速缓存310中的现有高速缓存线的高速缓存更新被缓冲在一个或多个数据缓冲器235之一中,并且监视一个或多个数据缓冲器235的调度器保护到与现有高速缓存线相关联的较低级高速缓存305或较高级高速缓存310的可用写端口,并将高速缓存更新写入较低级高速缓存305或较高级高速缓存310中以替换现有高速缓存线。
在一个实施例中,从较高级高速缓存310返回的高速缓存间转移线244包括完整高速缓存线和控制数据。在这种实施例中,无数据缓冲器234经由一个或多个控制225B位存储控制数据。在一个实施例中,相应的无数据缓冲器不存储与控制数据一同返回的完整高速缓存线。
在一个实施例中,集成电路301包括用于平板计算设备或智能电话之一的中央处理单元。
图4示出实施例可以根据其进行操作、被安装、被集成或被配置的系统499的图形表示。
在一个实施例中,系统499包括存储器495和处理器或多个处理器496。例如,存储器495可以存储待执行的指令,且处理器496可以执行这些指令。系统499包括通信总线465,用于在系统499内在与一个或多个通信总线465可通信地接口的多个外围设备470和/或接口475之间转移事务、指令、请求和数据。在系统499内还示出显示单元480。
系统499内的独特之处是集成电路301,集成电路301可被安装或配置在兼容系统499中,或者单独地制造和提供以与系统499的适当组件结合地操作。
根据一个实施例,系统499包括至少显示单元480和集成电路301。集成电路301可以操作作为例如处理器或作为系统499的另一计算组件。在这种实施例中,系统499的集成电路301包括至少:数据总线;与数据总线可通信地接口的较低级高速缓存;与数据总线可通信地接口的较高级高速缓存;以及与数据总线可通信地接口的一个或多个数据缓冲器,一个或多个数据缓冲器的每一个具有用于缓冲完整高速缓存线的缓冲存储器、用于指示相应数据缓冲器的状态的一个或多个控制位、以及与完整高速缓存线相关联的地址。在这种实施例中,系统499的集成电路301还包括一个或多个无数据缓冲器,无数据缓冲器不能存储完整高速缓存线并具有指示相应无数据缓冲器状态的一个或多个控制位和用于与相应无数据缓冲器相关联的高速缓存间转移线的地址。系统499的集成电路301附加地还包括高速缓存间转移逻辑,该高速缓存间转移逻辑用于经由数据总线从较高级高速缓存请求高速缓存间转移线,并用于将高速缓存间转移线从数据总线写入较低级高速缓存中。
在一个实施例中,系统499具体化为平板或智能电话,且显示单元480是平板或智能电话的触摸屏界面。在这种实施例中,集成电路301被并入平板或智能电话中,例如作为平板或智能电话的处理器或其它计算组件。
图5是示出根据所描述实施例的用于在分级高速缓存设计中的高速缓存之间实现高效通信的方法的流程图;方法500可以由处理逻辑执行,该处理逻辑可以包括硬件(例如电路、专用逻辑、可编程逻辑、伪代码等等)。所呈现的框的编号是为了清除,并不旨在规定各个框必须出现的操作的次序。
方法500通过处理逻辑以在较低级高速缓存处接收高速缓存未命中开始,其中相应的数据在经由数据总线与较低级高速缓存可通信地接口的较高级高速缓存处可获得(框505)。
在框510,处理逻辑响应于在较低级高速缓存处的高速缓存未命中,从上级高速缓存请求高速缓存间转移线。
在框515,处理逻辑对高速缓存间转移线分配无数据缓冲器。
在框520,处理逻辑发起替换操作以将高速缓存间转移线插入较低级高速缓存中。
在框525,处理逻辑至少部分地基于用于驱逐的高速缓存线驻留在较低级高速缓存中不存在争用的部分中,选择用于从较低级高速缓存驱逐的高速缓存线。
在框530,处理逻辑将高速缓存间转移线引导到通过驱逐高速缓存线而可用的位置。
在框535,处理逻辑通过接收数据总线上的高速缓存间转移线并将高速缓存间转移线从数据总线写入较低级高速缓存中,绕过所有高速缓存缓冲器,将高速缓存间转移线从较高级高速缓存转移到较低级高速缓存。
现在参考图6,所示出的是根据本发明一个实施例的系统600的框图。系统600可包括耦合至图形存储器控制器中枢(GMCH)620的一个或多个处理器610、615。附加的处理器615的任选性在图6中通过虚线来表示。
每个处理器610、615可以是如上所述的电路、集成电路、处理器和/或硅集成电路的某个版本。然而,应该注意,集成图形逻辑和集成存储器控制单元未必存在于处理器610、615中。图6示出GMCH620可耦合至存储器640,该存储器640可以是例如动态随机存取存储器(DRAM)。对于至少一个实施例,DRAM可以与非易失性高速缓存相关联。
GMCH620可以是芯片组或芯片组的一部分。GMCH620可以与(多个)处理器610、615进行通信,并控制处理器610、615和存储器640之间的交互。GMCH620还可担当(多个)处理器610、615和系统600的其它元件之间的加速总线接口。对于至少一个实施例,GMCH620经由诸如前端总线(FSB)695之类的多点总线与(多个)处理器610、615进行通信。
此外,GMCH620耦合至显示器645(诸如平板或触摸屏显示器)。GMCH620可包括集成图形加速器。GMCH620还耦合至输入/输出(I/O)控制器中枢(ICH)650,该输入/输出(I/O)控制器中枢(ICH)650可用于将各种外围设备耦合至系统600。在图6的实施例中作为示例示出了外部图形设备660以及另一外围设备670,该外部图形设备660可以是耦合至ICH650的分立图形设备。
替代地,系统600中还可存在附加或不同的处理器。例如,附加(多个)处理器615可包括与处理器610相同的附加(多个)处理器、与处理器610异类或不对称的附加(多个)处理器、加速器(诸如图形加速器或数字信号处理(DSP)单元)、现场可编程门阵列或任何其它处理器。按照包括架构、微架构、热、功耗特征等等优点的度量谱,(多个)处理器610、615之间存在各种差别。这些差别会有效显示为处理器610、615之间的不对称性和异类性。对于至少一个实施例,各种处理器610、615可驻留在同一管芯封装中。
现在参照图7,所示出的是根据本发明一个实施例的第二系统700的框图。如图7所示,多处理器系统700是点对点互连系统,且包括经由点对点接口750耦合的第一处理器770和第二处理器780。处理器770和780的每一个可以是如上所述的或者作为处理器610、615中一个或多个的处理器或集成电路的某个版本。
虽然仅以两个处理器770、780来示出,但应理解本发明的范围不限于此。在其它实施例中,在给定处理器中可存在一个或多个附加处理器。
处理器770和780被示为分别包括集成存储器控制器单元772和782。处理器770还包括作为其总线控制器单元一部分的点对点(P-P)接口776和778,类似地,第二处理器780包括P-P接口786和788。处理器770、780可以经由使用点对点(P-P)接口电路778、788的P-P接口750来交换信息。如图7所示,IMC772和782将处理器耦合到相应的存储器,即存储器732和存储器734,这些存储器可以是本地附连到相应处理器的主存储器的部分。
处理器770、780可各自经由使用点对点接口电路776、794、786、798的各个P-P接口752、754与芯片组790交换信息。芯片组790还可经由高性能图形接口739与高性能图形电路738交换信息。
共享高速缓存(未示出)可被包括在任一处理器中或在两个处理器的外部但经由P-P互连与这些处理器连接,从而如果处理器被置于低功率模式,则任一个或这两个处理器的本地高速缓存信息可被存储在该共享的高速缓存中。
芯片组790可以经由接口796耦合至第一总线716。在一个实施例中,第一总线716可以是外围组件互连(PCI)总线或诸如PCI高速总线或另一第三代I/O互连总线之类的总线,但是本发明的范围不限于此。
如图7所示,各种I/O设备714可连同总线桥718一起耦合到第一总线716,总线桥718将第一总线716耦合到第二总线720。在一个实施例中,第二总线720可以是低引脚数(LPC)总线。在一个实施例中,多个设备可以耦合到第二总线720,包括例如键盘和/或鼠标722、通信设备727以及可以包括指令/代码和数据730的存储单元728(诸如盘驱动器或其它海量存储设备)。此外,音频I/O724可耦合至第二总线720。注意,其它架构是可能的。例如,代替图7的点对点架构,系统可实现多点总线或另一此类架构。
现在参照图8,所示出的是根据本发明一个实施例的系统800的框图。图8示出处理器870、880可以分别包括集成存储器和I/O控制逻辑(CL)872和882,并且分别经由点对点(P-P)接口878和888之间的点对点互连850彼此相互通信。处理器870、880各自通过相应P-P接口876到894以及886到898经由点对点互连852和854与芯片组890通信,如图所示。对于至少一个实施例,CL872、882可以包括集成存储器控制器单元。CL872、882可以包括I/O控制逻辑。如图所示,耦合到CL872、882和I/O设备814的存储器832、834还耦合到控制逻辑872、882。传统I/O设备815经由接口896耦合至芯片组890。
图9示出各自其中具有根据实施例所述的电路的平板计算设备901和手持式智能电话902。如图所示,平板计算设备901和手持式智能电话902的每一个包括触摸屏界面903和根据所公开实施例的集成处理器904。
例如,在一个实施例中,系统具体化为平板计算设备901或手持式智能电话902,其中系统的显示单元包括用于平板或智能电话的触摸屏界面903,并且其中存储器和作为集成处理器操作的集成电路被并入平板或智能电话,其中集成处理器实现本文所述的实施例的一个或多个以实现分级高速缓存设计中高速缓存之间的高效通信。在一个实施例中,平板或智能电话的以上所述的集成电路或所示的集成处理器是充当平板计算设备或智能电话的中央处理单元的集成硅处理器。
图10是其中使用触摸屏界面连接器的平板计算设备、智能电话或其它移动设备的实施例的框图100处理器1010执行主处理操作。音频子系统1020代表与向计算设备提供音频功能的硬件(例如音频硬件和音频电路)和软件(例如驱动器、编解码器)组件。在一个实施例中,用户通过提供由处理器1010接收并处理的音频命令,来与平板计算设备或智能电话交互。
显示子系统1030代表向用户提供视觉和/或触觉显示以与平板计算设备或智能电话交互的硬件(例如显示设备)和软件(例如驱动器)组件。显示子系统1030包括显示界面1032,该显示界面1032包括用于向用户提供显示的特定屏幕或硬件设备。在一个实施例中,显示子系统1030包括向用户提供输出和输入的触摸屏设备。
I/O控制器1040代表与用户的交互相关的硬件设备和软件组件。I/O控制器1040可操作用于管理作为音频子系统1020和/或显示子系统1030一部分的硬件。此外,I/O控制器1040示出用于附加设备的连接点,附加设备可以连接到平板计算设备或智能电话,用户可以通过平板计算设备和智能电话进行交互。在一个实施例中,I/O控制器1040管理多个设备,诸如加速度计、相机、光传感器或其它环境传感器、或可以被包括在平板计算设备或智能电话中的其它硬件。输入可以是直接用户交互以及向平板计算设备或智能电话提供环境输入的部分。
在一个实施例中,平板计算设备或智能电话包括功率管理1050,该功率管理1050管理电池功率使用、电池充电、以及与节能操作相关的特征。存储器子系统1060包括用于在平板计算设备或智能电话中存储信息的存储器设备。连接1070包括到平板计算设备或智能电话的用于与外部设备通信的硬件设备(例如无线和/或有线连接器和通信硬件)和软件组件(例如驱动器、协议栈)。蜂窝连接1072可以包括例如无线载波,诸如GSM(全球移动通信系统)、CDMA(码分多址)、TDM(时分复用)或其它蜂窝服务标准。无线连接1074可包括例如非蜂窝的活动,诸如个域网(例如蓝牙)、局域网(例如WiFi)和/或广域网(WiMax)或其它无线通信。
外围连接1080包括硬件接口和连接器以及软件组件(例如驱动器、协议栈)以使外围连接作为到其它计算设备(“去往”1082)的外围设备以及具有连接到平板计算设备或智能电话的外围设备(“来自”1084),包括例如与其它计算设备连接的“对接(docking)”连接器。外围连接1080包括通用或基于标准的连接器,诸如通用串行总线(USB)、包括小型显示端口(MDP)的显示端口、高清多媒体接口(HDMI)、火线等等。
图11示出根据一个实施例的IP核开发的框图;存储介质130包括模拟软件1120和/或硬件或软件模型1110。在一个实施例中,表示IP核设计的数据可经由存储器1140(例如硬盘)、有线连接(例如互联网)1150或无线连接1160提供给存储介质1130。由模拟工具和模型生成的IP核信息然后可被发送到制造设施1165,其中它可由第三方制造以执行根据至少一个实施例的至少一个指令。
在一些实施例中,一个或多个指令可以对应于第一类型或架构(例如x86)并且在不同类型或架构的处理器(例如ARM)上被翻译或仿真。根据一个实施例,指令可以在任何处理器或处理器类型上执行,包括ARM、x86、MIPS、GPU或其它处理器类型或架构。
图12根据一个实施例示出第一类型的指令如何被不同类型的处理器仿真。在图12中,程序1205包括可以执行与根据一个实施例的指令相同或基本相同的功能的一些指令。然而,程序1205的指令可以是不同的或者与处理器1215兼容的类型和/或格式,意味着程序1205中的该类指令可能无法直接由处理器1215执行。然而,借助于仿真逻辑1210,程序1205的指令可被翻译成直接能够由处理器1215执行的指令。在一个实施例中,仿真逻辑被具体化在硬件中。在另一实施例中,仿真逻辑具体化在有形的机器可读介质中,该机器可读介质包含将程序1205中的该类指令翻译成直接能由处理器1215执行的类型的软件。在其它实施例中,仿真逻辑是固定功能或可编程硬件和存储在有形的机器可读介质上的程序的组合。在一个实施例中,处理器包含仿真逻辑,但在其它实施例中,仿真逻辑在处理器之外并由第三方提供。在一个实施例中,处理器能够通过执行包含在处理器中或者与之相关联的伪代码或固件,加载具体化在包含软件的有形的机器可读介质中的仿真逻辑。
图13是对照根据本发明实施例的将源指令集中的二进制指令转换成目标指令集中的二进制指令的软件指令转换器的使用的框图。在所示的实施例中,指令转换器是软件指令转换器,但是作为替代,指令转换器可以以软件、固件、硬件或其各种组合来实现。图13示出高级语言1302的程序可以通过使用x86编译器1304来编译,以生成可由具有至少一个x86指令集核的处理器1316直接执行的x86二进制代码1306。具有至少一个x86指令集核1316的处理器表示任何处理器,该处理器能够通过兼容地执行或以其它方式处理(1)英特尔x86指令集核的指令集的大部分或(2)旨在具有至少一个x86指令集核的英特尔处理器上运行的应用或其它软件的目标代码版本来执行与具有至少一个x86指令集核的英特尔处理器基本相同的功能,以实现与具有至少一个x86指令集核的英特尔处理器基本相同的结果。x86编译器1304表示可操作用于x86二进制代码1306(例如目标代码)的编译器,该x86二进制代码1306能够通过或无需附加的链接处理而在具有至少一个x86指令集核的处理器1316上执行。类似地,图13示出高级语言1302的程序可以通过使用替代的指令集编译器1308来编译,以生成可以直接由不具有至少一个x86指令集核的处理器1314(例如,具有执行加利福尼亚州桑尼维尔市的MIPS技术的MIPS指令集和/或执行加利福尼亚州桑尼维尔市的ARM控股的ARM指令集的核的处理器)直接执行的替代指令集二进制代码1310。指令转换器1312用于将x86二进制代码1306转换成可以由不具有至少一个x86指令集核的处理器1314直接执行的代码。该经转换的代码不必与替代的指令集二进制代码1310相同,因为能够如此的指令转换器难于制造;然而,经转换的代码会完成一般操作并由来自替代指令集的指令构成。因此,指令转换器1312表示通过仿真、模拟或任何其它过程允许不具有x86指令集处理器或核的处理器或其它电子设备执行x86二进制代码1306的软件、固件、硬件或其组合。
虽然本文所公开的主题以示例方式并针对具体实施例来描述,但是应该理解,要求保护的实施例并不限于明确列举的所公开实施例。相反,本公开旨在涵盖对本领域技术人员显而易见的各种修改和类似安排。因此,所附权利要求书的范围应该根据最宽泛的解释以覆盖所有这种修改和类似安排。应当理解,以上描述旨在是说明性的而非限制性的。在阅读并理解以上描述之后,许多其它实施方式对本领域内技术人员而言将是显而易见的。因此,所公开主题的范围可参考所附权利要求书以及这些权利要求享有权利的等效方案的完全范围来确定。
Claims (23)
1.一种集成电路,包括:
数据总线;
较低级高速缓存,与所述数据总线可通信地连接;
较高级高速缓存,与所述数据总线可通信地连接;
一个或多个数据缓冲器,与所述数据总线可通信地连接,所述一个或多个数据缓冲器的每一个具有缓冲完整高速缓存线的缓冲存储器、指示相应数据缓冲器的状态的一个或多个控制位、以及与所述完整高速缓存线相关联的地址;
一个或多个无数据缓冲器,与所述数据总线可通信地连接,所述一个或多个无数据缓冲器不能存储完整高速缓存线,并具有指示相应无数据缓冲器的状态的一个或多个控制位以及用于与相应无数据缓冲器相关联的高速缓存间转移线的地址;以及
高速缓存间转移逻辑单元,被配置成用于响应于所述较低级高速缓存处的高速缓存未命中,向所述高速缓存间转移线分配所述一个或多个无数据缓冲器之一,以及用于当所述高速缓存间转移线中的控制位指示独占或共享状态时,经由所述数据总线从所述较高级高速缓存请求高速缓存间转移线,并用于将所述高速缓存转移线从所述数据总线写入所述较低级高速缓存中,绕过所分配的无数据缓冲器和数据缓冲器。
2.如权利要求1所述的集成电路,其特征在于,所述高速缓存间转移逻辑单元还被配置成用于:
响应于所述较低级高速缓存处的高速缓存未命中,请求高速缓存间转移线。
3.如权利要求1所述的集成电路,其特征在于,所述高速缓存间转移逻辑单元被配置成用于将所述高速缓存间转移线从所述数据总线直接引导到所述较低级高速缓存、绕过所分配的无数据缓冲器包括:所述高速缓存间转移逻辑单元被配置成用于发起替换操作以将所述高速缓存间转移线插入所述较低级高速缓存中。
4.如权利要求3所述的集成电路,其特征在于,所述替换操作与从所述较高级高速缓存请求所述高速缓存间转移线并发地发起。
5.如权利要求3所述的集成电路,其特征在于,
所述替换操作包括至少部分地基于用于驱逐的高速缓存线驻留在所述较低级高速缓存中不存在争用的部分中,选择用于从所述较低级高速缓存驱逐的高速缓存线;以及
将所述高速缓存间转移线引导到通过驱逐高速缓存线而可用的位置。
6.如权利要求5所述的集成电路,其特征在于,所述高速缓存间转移逻辑单元还被配置成用于:
分配所述多个数据缓冲器之一以缓冲所驱逐的高速缓存线;以及
将所驱逐的高速缓存线引导到所分配的数据缓冲器中。
7.如权利要求1所述的集成电路,其特征在于,
所述较低级高速缓存包括被安排成两个或更多个组的多个存储器单元;以及
所述两个或更多个组中的每一个通过复用器mux来访问,所述复用器实现对相应组中的两个不同存储器单元的同时写/写、读/读或写/读操作。
8.如权利要求7所述的集成电路,其特征在于,所述高速缓存间转移逻辑单元被配置成用于将所述高速缓存间转移线从所述数据总线写入所述较低级高速缓存中包括:所述高速缓存间转移逻辑单元被配置成用于:
标识所述两个或更多个组中可应用写操作的一个;
选择所标识的组;以及
指令负责所选择的组的代理将来自所述数据总线的所述高速缓存间转移线写入所选择的组中。
9.如权利要求7所述的集成电路,其特征在于,所述高速缓存间转移逻辑单元被配置成用于将所述高速缓存间转移线从所述数据总线写入所述较低级高速缓存中包括:所述高速缓存间转移逻辑单元被配置成用于:
标识全部所述两个或更多个组上的争用;
停止对所述组之一的写操作;以及
指令负责与停止写操作相关联的组的代理将来自所述数据总线的所述高速缓存间转移线写入所述组中。
10.如权利要求1所述的集成电路,其特征在于,
所述较低级高速缓存是并入所述集成电路的芯片上1级高速缓存;以及
所述较高级高速缓存是并入所述集成电路的芯片上2级高速缓存。
11.如权利要求10所述的集成电路,其特征在于,所述芯片上1级高速缓存或所述芯片上2级高速缓存还与芯片外3级高速缓存通信,以执行从所述3级高速缓存到所述芯片上1级高速缓存或芯片上2级高速缓存之一的高速缓存间转移。
12.如权利要求1所述的集成电路,其特征在于,
对于存储在所述较低级高速缓存或所述较高级高速缓存中的现有高速缓存线的高速缓存更新被缓冲到所述一个或多个数据缓冲器之一中;以及
被配置成用于监视所述一个或多个数据缓冲器的调度器保护与所述现有高速缓存线相关联的所述较低级高速缓存或所述较高级高速缓存的可用写端口并将所述高速缓存更新写入所述较低级高速缓存或所述较高级高速缓存以替换所述现有高速缓存线。
13.如权利要求1所述的集成电路,其特征在于,从所述较高级高速缓存返回的所述高速缓存间转移线包括完整高速缓存线和控制数据,并且所述一个或多个无数据缓冲器之一经由所述一个或多个控制位存储所述控制数据,并且相应无数据缓冲器不存储与所述控制数据一同返回的完整高速缓存线。
14.如权利要求1所述的集成电路,其特征在于,所述集成电路包括用于平板计算设备或智能电话之一的中央处理单元。
15.一种计算系统,包括:
显示单元;以及
集成电路,与所述显示单元耦合,其中所述集成电路包括:
数据总线;
较低级高速缓存,与所述数据总线可通信地连接;
较高级高速缓存,与所述数据总线可通信地连接;
一个或多个数据缓冲器,与所述数据总线可通信地连接,所述一个或多个数据缓冲器的每一个具有缓冲完整高速缓存线的缓冲存储器、指示相应数据缓冲器的状态的一个或多个控制位、以及与所述完整高速缓存线相关联的地址;
一个或多个无数据缓冲器,与所述数据总线可通信地连接,所述一个或多个无数据缓冲器不能存储完整高速缓存线,并具有指示相应无数据缓冲器的状态的一个或多个控制位以及用于与相应无数据缓冲器相关联的高速缓存间转移线的地址;
高速缓存间转移逻辑单元,被配置成用于响应于所述较低级高速缓存处的高速缓存未命中,向所述高速缓存间转移线分配所述一个或多个无数据缓冲器之一,以及用于当所述高速缓存间转移线中的控制位指示独占或共享状态时,经由所述数据总线从所述较高级高速缓存请求高速缓存间转移线并用于将所述高速缓存转移线从所述数据总线写入所述较低级高速缓存中,绕过所分配的无数据缓冲器和数据缓冲器。
16.如权利要求15所述的计算系统,其特征在于,
所述系统具体化为平板或智能电话;
所述显示单元包括所述平板或智能电话的触摸屏界面;以及
所述集成电路并入所述平板或智能电话中。
17.如权利要求15所述的计算系统,其特征在于,所述高速缓存间转移逻辑单元被配置成用于将所述高速缓存间转移线从所述数据总线直接引导到所述较低级高速缓存、绕过所分配的无数据缓冲器包括:所述高速缓存间转移逻辑单元被配置成用于发起替换操作以将所述高速缓存间转移线插入所述较低级高速缓存中。
18.如权利要求17所述的计算系统,其特征在于,所述替换操作与从所述较高级高速缓存请求所述高速缓存间转移线并发地发起。
19.如权利要求17所述的计算系统,其特征在于,
所述替换操作包括至少部分地基于用于驱逐的高速缓存线驻留在所述较低级高速缓存中不存在争用的部分中,选择用于从所述较低级高速缓存驱逐的高速缓存线;以及
将所述高速缓存间转移线引导到通过驱逐高速缓存线而可用的位置。
20.一种集成电路中的方法,所述方法包括:
在较低级高速缓存处接收高速缓存未命中,相应数据在经由数据总线与所述较低级高速缓存可通信地接口的较高级高速缓存处可用;
响应于在所述较低级高速缓存处的高速缓存未命中,从上级高速缓存请求高速缓存间转移线;
对所述高速缓存间转移线分配无数据缓冲器,其中所述无数据缓冲器不能存储所述高速缓存间转移线并且具有指示相应无数据缓冲器的状态的一个或多个控制位以及用于与相应无数据缓冲器相关联的高速缓存间转移线的地址;以及
通过接收所述数据总线上的所述高速缓存间转移线并将所述高速缓存间转移线从所述数据总线写入所述较低级高速缓存中,绕过所有高速缓存缓冲器,将所述高速缓存间转移线从所述较高级高速缓存转移到所述较低级高速缓存。
21.如权利要求20所述的方法,其特征在于,所述高速缓存间转移逻辑单元将所述高速缓存间转移线从所述数据总线直接引导到所述较低级高速缓存、绕过所分配的无数据缓冲器包括:所述高速缓存间转移逻辑单元发起替换操作以将所述高速缓存间转移线插入所述较低级高速缓存中。
22.如权利要求21所述的方法,其特征在于,所述替换操作与从所述较高级高速缓存请求所述高速缓存间转移线并发地发起。
23.如权利要求21所述的方法,其特征在于,所述替换操作包括:
至少部分地基于用于驱逐的高速缓存线驻留在所述较低级高速缓存中不存在争用的部分中,选择用于从所述较低级高速缓存驱逐的高速缓存线;以及
将所述高速缓存间转移线引导到通过驱逐高速缓存线而可用的位置。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2011/067217 WO2013095640A1 (en) | 2011-12-23 | 2011-12-23 | Methods and apparatus for efficient communication between caches in hierarchical caching design |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103348333A CN103348333A (zh) | 2013-10-09 |
CN103348333B true CN103348333B (zh) | 2017-03-29 |
Family
ID=48669278
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201180066503.3A Expired - Fee Related CN103348333B (zh) | 2011-12-23 | 2011-12-23 | 用于分级高速缓存设计中的高速缓存之间的高效通信的方法和装置 |
Country Status (7)
Country | Link |
---|---|
US (1) | US9411728B2 (zh) |
EP (1) | EP2795472A1 (zh) |
JP (1) | JP5643903B2 (zh) |
KR (1) | KR101511972B1 (zh) |
CN (1) | CN103348333B (zh) |
TW (1) | TWI465908B (zh) |
WO (1) | WO2013095640A1 (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103946812B (zh) * | 2011-09-30 | 2017-06-09 | 英特尔公司 | 用于实现多级别存储器分级体系的设备和方法 |
EP3627764B1 (en) * | 2012-03-30 | 2021-07-28 | Intel Corporation | Method and apparatus to process sha-2 secure hashing algorithm |
US10108805B2 (en) | 2013-06-26 | 2018-10-23 | Intel Corporation | Method and apparatus to process SHA-2 secure hashing algorithm |
KR20160065773A (ko) * | 2014-10-08 | 2016-06-09 | 비아 얼라이언스 세미컨덕터 씨오., 엘티디. | 1차 캐시와 오버플로 선입 선출 캐시를 구비하는 캐시 시스템 |
US10298713B2 (en) * | 2015-03-30 | 2019-05-21 | Huawei Technologies Co., Ltd. | Distributed content discovery for in-network caching |
US10007619B2 (en) * | 2015-05-29 | 2018-06-26 | Qualcomm Incorporated | Multi-threaded translation and transaction re-ordering for memory management units |
CN105335305B (zh) * | 2015-10-30 | 2018-05-15 | 深圳盛思科教文化有限公司 | 一种交互式可编程硬件的缓冲机制实现方法及装置 |
US10430343B2 (en) * | 2017-02-21 | 2019-10-01 | Advanced Micro Devices, Inc. | Acceleration of cache-to-cache data transfers for producer-consumer communication |
CN109074320B (zh) * | 2017-03-08 | 2023-11-17 | 华为技术有限公司 | 一种缓存替换方法,装置和系统 |
JP2020532795A (ja) * | 2017-08-31 | 2020-11-12 | レール ビジョン リミテッドRail Vision Ltd | 複数計算における高スループットのためのシステムおよび方法 |
US11086526B2 (en) * | 2018-06-07 | 2021-08-10 | Micron Technology, Inc. | Adaptive line width cache systems and methods |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101008920A (zh) * | 2006-01-25 | 2007-08-01 | 国际商业机器公司 | 用于数据高速缓存的方法和系统 |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5732244A (en) * | 1995-07-24 | 1998-03-24 | Unisys Corp. | Multiprocessor with split transaction bus architecture for sending retry direction to other bus module upon a match of subsequent address bus cycles to content of cache tag |
JPH09146836A (ja) * | 1995-11-21 | 1997-06-06 | Kofu Nippon Denki Kk | キャッシュ索引の障害訂正装置 |
US6226713B1 (en) * | 1998-01-21 | 2001-05-01 | Sun Microsystems, Inc. | Apparatus and method for queueing structures in a multi-level non-blocking cache subsystem |
US6314491B1 (en) | 1999-03-01 | 2001-11-06 | International Business Machines Corporation | Peer-to-peer cache moves in a multiprocessor data processing system |
JP2001236221A (ja) * | 2000-02-21 | 2001-08-31 | Keisuke Shindo | マルチスレッドを利用するパイプライン並列プロセッサ |
US7305397B2 (en) | 2002-01-31 | 2007-12-04 | Tririga Llc | Caching data communications to reduce latency |
US7080210B2 (en) * | 2002-02-12 | 2006-07-18 | Ip-First, Llc | Microprocessor apparatus and method for exclusive prefetch of a cache line from memory |
US7228388B2 (en) | 2004-11-19 | 2007-06-05 | International Business Machines Corporation | Enabling and disabling cache bypass using predicted cache line usage |
US20060143396A1 (en) | 2004-12-29 | 2006-06-29 | Mason Cabot | Method for programmer-controlled cache line eviction policy |
US7536513B2 (en) | 2005-03-31 | 2009-05-19 | International Business Machines Corporation | Data processing system, cache system and method for issuing a request on an interconnect fabric without reference to a lower level cache based upon a tagged cache state |
US7403426B2 (en) * | 2005-05-25 | 2008-07-22 | Intel Corporation | Memory with dynamically adjustable supply |
US7512742B2 (en) | 2006-01-17 | 2009-03-31 | International Business Machines Corporation | Data processing system, cache system and method for precisely forming an invalid coherency state indicating a broadcast scope |
US8041894B2 (en) * | 2008-02-25 | 2011-10-18 | International Business Machines Corporation | Method and system for a multi-level virtual/real cache system with synonym resolution |
US8190820B2 (en) * | 2008-06-13 | 2012-05-29 | Intel Corporation | Optimizing concurrent accesses in a directory-based coherency protocol |
US20110238925A1 (en) * | 2008-10-02 | 2011-09-29 | Dan Robinson | Cache controller and method of operation |
JP2011198091A (ja) | 2010-03-19 | 2011-10-06 | Toshiba Corp | 仮想アドレスキャッシュメモリ、プロセッサ及びマルチプロセッサシステム |
US8285926B2 (en) * | 2010-05-03 | 2012-10-09 | Oracle America, Inc. | Cache access filtering for processors without secondary miss detection |
EP2643741A4 (en) * | 2010-11-25 | 2016-08-24 | Freescale Semiconductor Inc | METHOD AND DEVICE FOR PERFORMANCE MANAGEMENT OF A MULTICULTURAL PROCESSOR |
-
2011
- 2011-12-23 WO PCT/US2011/067217 patent/WO2013095640A1/en active Application Filing
- 2011-12-23 JP JP2013550479A patent/JP5643903B2/ja not_active Expired - Fee Related
- 2011-12-23 KR KR1020137022974A patent/KR101511972B1/ko not_active IP Right Cessation
- 2011-12-23 CN CN201180066503.3A patent/CN103348333B/zh not_active Expired - Fee Related
- 2011-12-23 EP EP11877943.8A patent/EP2795472A1/en not_active Withdrawn
- 2011-12-23 US US13/994,399 patent/US9411728B2/en not_active Expired - Fee Related
-
2012
- 2012-12-21 TW TW101149054A patent/TWI465908B/zh not_active IP Right Cessation
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101008920A (zh) * | 2006-01-25 | 2007-08-01 | 国际商业机器公司 | 用于数据高速缓存的方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
EP2795472A1 (en) | 2014-10-29 |
TWI465908B (zh) | 2014-12-21 |
US20130326145A1 (en) | 2013-12-05 |
KR20130132591A (ko) | 2013-12-04 |
US9411728B2 (en) | 2016-08-09 |
CN103348333A (zh) | 2013-10-09 |
WO2013095640A1 (en) | 2013-06-27 |
TW201344435A (zh) | 2013-11-01 |
JP5643903B2 (ja) | 2014-12-17 |
KR101511972B1 (ko) | 2015-04-15 |
JP2014503103A (ja) | 2014-02-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103348333B (zh) | 用于分级高速缓存设计中的高速缓存之间的高效通信的方法和装置 | |
Lee et al. | Decoupled direct memory access: Isolating CPU and IO traffic by leveraging a dual-data-port DRAM | |
CN101425966B (zh) | 片上网络以及使用片上网络进行数据处理的方法 | |
CN104115129B (zh) | 用于从处理器到存储器子系统智能刷新数据的系统和方法 | |
CN100573456C (zh) | 一种并行多处理器虚拟机系统 | |
CN107346351A (zh) | 用于基于源代码中定义的硬件要求来设计fpga的方法和系统 | |
CN103744644B (zh) | 采用四核结构搭建的四核处理器系统及数据交换方法 | |
CN103927277A (zh) | Cpu和gpu共享片上高速缓存的方法及装置 | |
CN104221005B (zh) | 用于从多线程发送请求至加速器的机制 | |
CN109983440A (zh) | 数据处理 | |
CN105556503B (zh) | 动态的存储器控制方法及其系统 | |
JP2003296191A (ja) | 汎用プロセッサおよび周辺装置のプロセッサとして動作可能な集積回路 | |
CN107408018A (zh) | 用于在固态驱动器中适应垃圾收集资源分配的机制 | |
CN109314103B (zh) | 用于远程现场可编程门阵列处理的方法和装置 | |
Zhang et al. | Fuse: Fusing stt-mram into gpus to alleviate off-chip memory access overheads | |
CN103914333B (zh) | 基于片上网络互连的多核存储系统仿真器 | |
US10705993B2 (en) | Programming and controlling compute units in an integrated circuit | |
US20070188508A1 (en) | Optimized memory addressing | |
EP2325747A2 (en) | Virtual platform for prototyping system-on-chip designs | |
CN105874431A (zh) | 减少数据交换负载的计算系统以及相关的数据交换方法 | |
Joyce et al. | Exploring storage bottlenecks in Linux-based embedded systems | |
JP2003347930A (ja) | プログラマブル論理回路及びコンピュータシステム並びにキャッシュ方法 | |
Wu et al. | A hardware platform for exploring predictable cache coherence protocols for real-time multicores | |
JP6055456B2 (ja) | 階層的キャッシュ設計におけるキャッシュ間の効率的通信のための方法および装置 | |
Bause et al. | A Configurable and Efficient Memory Hierarchy for Neural Network Hardware Accelerator |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20170329 Termination date: 20181223 |