CN103778070A - 多个块一致性操作的并行处理 - Google Patents
多个块一致性操作的并行处理 Download PDFInfo
- Publication number
- CN103778070A CN103778070A CN201310512856.2A CN201310512856A CN103778070A CN 103778070 A CN103778070 A CN 103778070A CN 201310512856 A CN201310512856 A CN 201310512856A CN 103778070 A CN103778070 A CN 103778070A
- Authority
- CN
- China
- Prior art keywords
- data
- cache
- instruction
- address
- cache memory
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
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/0891—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using clearing, invalidating or resetting means
-
- 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
Abstract
本发明涉及一种通过使多CPU环境中的多个重叠块无效操作与正常CPU存取重叠因此使所述块无效操作的延迟透明来消除所述延迟的方法。执行所述块无效操作的高速缓存控制器将多个重叠请求合并到并行流中以消除执行延迟。还可将除块无效之外的例如块回写或块回写无效的高速缓存操作合并到执行流中。
Description
技术领域
本发明的技术领域为用于数字数据处理器的高速缓冲存储器。
背景技术
在层次型高速缓存系统中,可能需要块无效操作以使高速缓存在存储器系统中的行块无效。在块一致性操作中,用户编程基址以及需要从高速缓冲存储器移除的字的数目。高速缓存控制器接着迭代通过整个高速缓冲存储器,且如果控制器发现在既定地址范围内的地址,那么所述控制器将把那个特定集合及方式标记为无效。通常需要块无效操作来保持多处理器系统内的数据一致性。
图6中图解说明一实例。在多核心环境中,CPU1601正更新在地址范围A内的数据。在CPU1完成后,另一CPU可开始进程603且更新相同地址范围内的数据。如果在此时间期间CPU1需要存取此地址范围内的数据,那么其将需要从另一CPU获得数据的经更新副本,然而,所需数据中的一些数据仍可高速缓存在CPU1中-因此CPU1将获得旧数据,除非将在相同地址范围A内对CPU1的高速缓冲存储器执行块无效602操作。接着,此将确保CPU1请求将导致高速缓存未命中,且将从主存储器供应正确数据。
发明内容
本发明中所描述的方法通过在块无效操作在进行中时对每一尝试的CPU存取进行范围检查来消除图6中所展示的块无效操作中固有的延迟。如果CPU存取导致高速缓存命中,但高速缓存地址属于所述块无效操作范围内,那么将把所述存取视为高速缓存未命中,从而确保将从主存储器存取正确数据而无需等待直到块无效操作完成。
如果请求多个重叠块无效操作,那么还可并行地执行所述操作以便消除串行执行中固有的等待时间。还可将同时块无效(BI)、块回写(BW)及块回写与无效(BWI)请求合并到并行执行流中。
附图说明
图式中图解说明本发明的这些及其它方面,其中:
图1图解说明本发明可适用的典型数字信号处理器的组织(现有技术);
图2图解说明适合于在图1中使用的极长指令字数字信号处理器核心的细节(现有技术);
图3图解说明图2中所图解说明的极长指令字数字信号处理器核心的管线级(现有技术);
图4图解说明图2中所图解说明的极长指令字数字信号处理器核心的指令语法(现有技术);
图5图解说明一组典型现有技术高速缓存行的细节(现有技术);
图6图解说明以串行方式进行的块一致性操作;
图7图解说明以并行方式进行的块一致性操作;
图8图解说明进行中的高速缓存无效操作。
具体实施方式
图1图解说明本发明可适用的典型数字信号处理器系统100的组织(现有技术)。数字信号处理器系统100包含中央处理单元核心110。中央处理单元核心110包含数字信号处理器系统100的数字处理部分。中央处理单元核心110可如此项技术中已知的那样构造且通常将包含寄存器堆、整数算术逻辑单元、整数乘法器及程序流控制单元。下文结合图2到4描述适当中央处理单元核心的实例。
数字信号处理器系统100包含若干个高速缓冲存储器。图1图解说明一对第一层级高速缓冲存储器。层级1指令高速缓冲存储器(L1I)121存储由中央处理单元核心110使用的指令。中央处理单元核心110首先尝试从层级1指令高速缓冲存储器121存取任何指令。层级1数据高速缓冲存储器(L1D)123存储由中央处理单元核心110使用的数据。中央处理单元核心110首先尝试从层级1数据高速缓冲存储器123存取任何所需数据。两个层级1高速缓冲存储器由层级2统一高速缓冲存储器(L2)130支持。在对层级1指令高速缓冲存储器121或对层级1数据高速缓冲存储器123的高速缓存未命中的情况中,可从层级2统一高速缓冲存储器130寻找所请求的指令或数据。如果所请求的指令或数据存储于层级2统一高速缓冲存储器130中,那么将其供应到发请求的层级1高速缓冲存储器用于供应到中央处理单元核心110。如此项技术中已知,可同时将所请求的指令或数据供应到发请求的高速缓冲存储器及中央处理单元核心110两者以加快使用速度。
层级2统一高速缓冲存储器130进一步耦合到更高级存储器系统。数字信号处理器系统100可为多处理器系统的一部分。多处理器系统的其它处理器经由传送请求总线141及数据传送总线143耦合到层级2统一高速缓冲存储器130。直接存储器存取单元150提供数字信号处理器系统100到外部存储器161及外部外围设备169的连接。
图1图解说明数字信号处理器系统100内的数个数据/指令移动。这些移动包含:(1)响应于L1I高速缓存未命中,指令从L2高速缓冲存储器130移动到L1I高速缓冲存储器121以进行填充;(2)响应于L1D高速缓存未命中,数据从L2高速缓冲存储器130移动到L1D高速缓冲存储器123以进行填充;(3)响应于L1D高速缓冲存储器123中的写入未命中、响应于L1D高速缓冲存储器123受害逐出(victim eviction)且响应于来自L2高速缓冲存储器130的窥探,数据从L1D高速缓冲存储器123移动到L2高速缓冲存储器130;(4)响应于L2高速缓存未命中或直接存储器存取(DMA)数据传送到L2高速缓冲存储器130中,数据从外部存储器161移动到L2高速缓冲存储器130以进行填充;(5)响应于L2高速缓冲存储器受害逐出或回写且响应于DMA传送出L2高速缓冲存储器130,数据从L2高速缓冲存储器130移动到外部存储器161;(6)响应于DMA传送到L2高速缓冲存储器130中,数据从外围设备169移动到L2高速缓冲存储器130;及(7)响应于DMA传送出L2高速缓冲存储器130,数据从L2高速缓冲存储器130移动到外围设备169。
图2为图解说明适合但非必需用于本发明的数字信号处理器集成电路200的细节的框图(现有技术)。数字信号处理器集成电路200包含中央处理单元1,其为32位八路VLIW管线化处理器。中央处理单元1耦合到包含在数字信号处理器集成电路200中的层级1指令高速缓冲存储器121。数字信号处理器集成电路200还包含层级1数据高速缓冲存储器123。数字信号处理器集成电路200还包含外围设备4到9。这些外围设备优选地包含外部存储器接口(EMIF)4及直接存储器存取(DMA)控制器5。外部存储器接口(EMIF)4优选地支持对同步及异步SRAM以及同步DRAM的存取。直接存储器存取(DMA)控制器5优选提供2通道自启动加载直接存储器存取。这些外围设备包含断电逻辑6。断电逻辑6优选地可停止中央处理单元活动、外围设备活动及锁相环路(PLL)时钟同步活动以减少功率消耗。这些外围设备还包含主机端口7、串行端口8及可编程计时器9。
中央处理单元1具有32位字节可寻址地址空间。同一集成电路上的内部存储器优选被组织在包含层级1数据高速缓冲存储器123的数据空间及包含层级1指令高速缓冲存储器121的程序空间中。当使用芯片外存储器时,优选地经由外部存储器接口(EMIF)4来将这两个空间统一为单个存储器空间。
层级1数据高速缓冲存储器123可由中央处理单元1经由两个内部端口3a及3b在内部存取。每一内部端口3a及3b优选地具有32位的数据及32位字节地址范围(reach)。层级1指令高速缓冲存储器121可由中央处理单元1经由单个端口2a在内部存取。层级1指令高速缓冲存储器121的端口2a优选地具有256位的指令提取宽度及等效于32位字节地址的30位字(四个字节)地址。
中央处理单元1包含程序提取单元10、指令分派单元11、指令解码单元12以及两个数据路径20及30。第一数据路径20包含四个功能单元(标示为L1单元22、S1单元23、M1单元24及D1单元25)及形成寄存器堆21的16个32位A寄存器。第二数据路径30同样地包含四个功能单元(标示为L2单元32、S2单元33、M2单元34及D2单元35)及形成寄存器堆31的16个32位B寄存器。每一数据路径的功能单元针对其操作数而存取对应的寄存器堆。每一管线级存在准许存取相反寄存器堆中的一个寄存器的两个交叉路径27及37。中央处理单元1包含控制寄存器13、控制逻辑14以及测试逻辑15、仿真逻辑16及中断逻辑17。
程序提取单元10、指令分派单元11及指令解码单元12在每个指令循环从层级1指令高速缓冲存储器121再调用指令,且将最多八个32位指令向上递送到功能单元。处理在两个数据路径20及30中的每一者中同时发生。如先前所描述,每一数据路径具有四个对应功能单元(L、S、M及D)及含有16个32位寄存器的对应寄存器堆。每一功能单元由32位指令控制。下文进一步描述所述数据路径。控制寄存器堆13提供用以配置且控制各种处理器操作的手段。
图3说明数字信号处理器核心110的管线级300(现有技术)。这些管线级划分为三个群组:提取群组310;解码群组320;及执行群组330。指令集中的所有指令流经管线的提取、解码及执行级。提取群组310具有用于所有指令的四个阶段,且解码群组320具有用于所有指令的两个阶段。执行群组330取决于指令的类型而需要变化数目个阶段。
提取群组310的提取阶段为:程序地址产生阶段311(PG);程序地址发送阶段312(PS);程序存取准备等待级313(PW);及程序提取包接收级314(PR)。数字信号处理器核心110使用八个指令的提取包(FP)。所有八个指令一起前进经过提取群组310。在PG阶段311期间,在程序提取单元10中产生程序地址。在PS阶段312期间,将此程序地址发送到存储器。在PW阶段313期间,发生存储器读取。最后在PR阶段314期间,在CPU1处接收提取包。
解码群组320的解码阶段为:指令分派(DP)321;及指令解码(DC)322。在DP阶段321期间,将提取包分裂为若干执行包。执行包由经译码以并行执行的一个或一个以上指令组成。在DP阶段322期间,将执行包中的指令指派给适当功能单元。同样在DC阶段322期间,对源寄存器、目的地寄存器及相关联的路径解码以在相应功能单元中执行所述指令。
执行群组330的执行阶段为:执行1(E1)331;执行2(E2)332;执行3(E3)333;执行4(E4)334;及执行5(E5)335。不同类型的指令需要不同数目个这些阶段来完成。管线的这些阶段在理解CPU循环边界处的装置状态方面起到重要作用。
在E1阶段331期间,评估指令的条件且读取所有指令类型的操作数。对于加载及存储指令,执行地址产生且将地址修改写入到寄存器堆。对于分支指令,PG阶段311中的分支提取包受到影响。对于所有单循环指令,将结果写入到寄存器堆。所有单循环指令在E1阶段331期间完成。
在E2阶段332期间,对于加载指令,将地址发送到存储器。对于存储指令,将地址及数据发送到存储器。使结果饱和的单循环指令在发生饱和的情况下设定控制状态寄存器(CSR)中的SAT位。对于单循环16乘16乘法指令,将结果写入到寄存器堆。对于M单位非乘法指令,将结果写入到寄存器堆。所有普通乘法单元指令在E2阶段322期间完成。
在E3阶段333期间,执行数据存储器存取。使结果饱和的任何乘法指令在发生饱和的情况下设定控制状态寄存器(CSR)中的SAT位。存储指令在E3阶段333期间完成。
在E4阶段334期间,对于加载指令,将数据带到CPU边界。对于乘法扩展指令,将结果写入到寄存器堆。乘法扩展指令在E4阶段334期间完成。
在E5阶段335期间,加载指令将数据写入到寄存器中。加载指令在E5阶段335期间完成。
图4图解说明由数字信号处理器核心110使用的指令的指令译码的实例(现有技术)。每一指令由32个位组成,且控制八个功能单元中的一者的操作。如下定义位字段。creg字段(位29到31)是条件寄存器字段。这些位识别指令是否为有条件的,且识别预测寄存器。z位(位28)指示在预测寄存器中预测是基于零还是非零。如果z=1,那么测试是针对具有零的等式。如果z=0,那么测试是针对非零。将creg=0及z=0的情况视为总是成立的,以允许无条件指令执行。如表1中所示,在指令操作码中编码creg字段。
表1
注意,z位列中的“z”指代上文所述的零/非零比较选择,且“x”为无关状态。此译码可仅将每一寄存器堆中的32个寄存器的子集规定为预测寄存器。进行此选择以保存指令译码中的位。
dst字段(位23到27)将对应寄存器堆中的32个寄存器中的一者规定为指令结果的目的地。
scr2字段(位18到22)将对应寄存器堆中的32个寄存器中的一者规定为第二源操作数。
scr1/cst字段(位13到17)取决于指令操作码字段(位3到12)而具有数个含义。第一含义将对应寄存器堆中的32个寄存器中的一者规定为第一操作数。第二含义为5位立即数常数。取决于指令类型,将此视为扩展到32位的不带符号的整数及零或视为扩展到32位的带符号的整数及符号。最后,如果指令调用寄存器堆交叉路径27或37中的一者,那么此字段可规定相反寄存器堆中的32个寄存器中的一者。
操作码字段(位3到12)规定指令的类型且指定适当的指令选项。此字段的详细解释除了下文详述的指令选项之外而超出本发明的范围。
s位(位1)指定数据路径20或30。如果s=0,那么选择数据路径20。此将功能单元限制于L1单元22、S1单元23、M1单元24及D1单元25及对应的寄存器堆A21。类似地,s=1选择数据路径20,从而将功能单元限制于L2单元32、S2单元33、M2单元34及D2单元35及对应的寄存器堆B31。
p位(位0)标记执行包。p位确定指令是否与后面的指令并行执行。从较低地址到较高地址扫描p个位。如果对于当前指令来说p=1,那么下一指令与当前指令并行执行。如果对于当前指令来说p=0,那么下一指令在当前指令之后的循环中执行。并行执行的所有指令构成执行包。执行包可含有最多达八个指令。执行包中的每一指令必须使用不同的功能单元。
图5图解说明例如用于图1中所图解说明的L1I高速缓冲存储器121、L1D高速缓冲存储器123及L2高速缓冲存储器131中的多个高速缓存行的细节。图5中所图解说明的高速缓冲存储器500包含表示高速缓冲存储器500的内部结构的高速缓存行510、520及530。高速缓存行510、520及530中的每一者包含:相应地址标签511、521及531;相应有效位512、522及532;相应脏位513、523及533;相应最近最少使用(LRU)指示符514、524及534;及相应数据字515、525及535。每一高速缓存行510、520及530包含多个相应数据字515、525及535。数据字515、525及535的位长度由CPU110的最小可寻址数据量来设定。此通常为8位/1字节。
高速缓冲存储器500存储来自通过多位地址存取的较远存储器(例如外部存储器131)的数据。高速缓冲存储器500经组织以促进此存储及促进在所述高速缓冲存储器中发现此类数据。每一高速缓存行510、520及530通常存储2N个相应数据字515、525及535,其中N为整数。对应高速缓存行510、520及530内的数据字515、525及535沿着维度501的位置充当地址的最低有效位的代理。
行内经高速缓存的数据沿着维度502的位置充当地址的下一最高有效位的代理。对应地址标签511、521及531形成数据字地址的其余部分。为确定存储器存取是否是针对高速缓冲存储器500内经高速缓存的数据(高速缓存命中),高速缓冲存储器500将所有高速缓存行的地址标签与经存取的存储器位置的最高有效位进行比较。在检测到匹配时,高速缓存行内沿着维度501的位置对应于准许识别经存取的数据字的地址的最低有效位。
每一数据字510、520及530包含对应的有效位512、522及532。此有效位的第一状态指示对应的数据字515、525或535为有效的。此有效位的相反状态指示对应的数据字515、525或535为不有效的。存在其中存储于高速缓冲存储器500内的数据将为不有效的数个实例。在数字信号处理器系统100的初始激活时,L1I高速缓冲存储器121、L1D高速缓冲存储器123及L2高速缓冲存储器131将不被加载。因此其将不存储有效数据。因此,所有高速缓存行最初被标记为无效。在高速缓冲存储器存取期间,所请求地址与地址标签511、521或531的匹配将检测不到匹配,除非对应的有效位512、522或532指示数据有效。
每一数据字510、520及530包含对应的脏位513、523及533。此有效位的第一状态指示对应的数据字515、525或535为脏的。此有效位的相反状态指示对应的数据字515、525或535不为脏的(干净)。高速缓冲存储器通常用于读取存取及写入存取两者。在针对写入存取的高速缓存命中时,将写入数据写入到高速缓冲存储器500内对应的位置中。根据优选的回写技术,此写入数据未立即转发到外部存储器131。代替地,将相应脏位513、523或533设定为指示为脏的。脏指示意指已存在对基本存储器中当前未反映的经高速缓存的数据的写入。根据回写技术,将此数据写入到基本存储器,并预期此回写可积累对同一高速缓存行内的存储器位置及附近存储器位置的多次写入,从而减少总线上到外部存储器131的业务。
当替换高速缓存行时,使用最近最少使用(LRU)位514、524及534。因为高速缓冲存储器不能使所有数据保持存储于大的慢速存储器中,所以必须定期用新的数据来替换高速缓冲存储器内的数据。使用维度501及502内的数据字位置作为最低有效位的代理引入了定位高速缓冲存储器500内的数据中的问题。如果仅存在单个高速缓存行在维度501及502上具有相同位置,那么来自大的慢速存储器的多个数据将混叠到高速缓冲存储器500中的相同高速缓存行。此为具有对应于维度501及502的相同最低有效地址位但具有不同最高有效地址位的数据。对此类混叠数据的存取将要求所述高速缓存行处的先前数据被替换。这被认为是不利的。典型的现有技术高速缓冲存储器为集合关联的。因此一集合的高速缓存行在维度501及502上具有相同位置。典型的集合包含两个成员(两路集合关联)或四个成员(四路集合关联)。此集合的每一高速缓存行称作一路。对混叠到这些集合中的一者的地址的高速缓存未命中仅需要逐出这些路中的一者。通常基于这些路的先前使用而做出将逐出哪一路的确定。根据时间及空间位置原理,最近较多使用的高速缓存路比最近较少使用的高速缓存路更有可能重新使用。LRU位514、524及534追踪对所述集合内的高速缓存路的存取。当将替换数据时,LRU位指示最近最少使用的路以用于替换。维持高速缓存一致性需要在此替换时对脏路的回写。
图7图解说明根据本发明的确保高速缓存一致性所需的块无效操作。在多核心环境中,CPU1701正更新其地址范围A内的数据。在CPU1完成后,另一CPU可开始进程702,且更新相同地址范围内的数据。如果在此时间期间CPU1需要存取相同地址范围内的数据,那么其将需要获得数据的经更新副本,然而所述数据中的一些数据仍可高速缓存在CPU1中,因此,CPU1可获得旧的数据,除非在相同地址范围内对CPU1的高速缓冲存储器执行块无效操作703。为了消除CPU1等待直到块无效操作完成的需要,将在所述块无效操作在进行中时对每一CPU地址执行范围检查。如果CPU存取请求导致高速缓存命中但地址在块无效操作的范围内,那么存取请求将被视为高速缓存未命中,高速缓存控制器将行标记为无效,且发出读取未命中请求。此将确保即使CPU1不等待块无效操作完成,其仍将获得来自主存储器的经更新数据。
图8进一步图解说明根据本发明的在进行中的块无效操作。如果CPU存取区0 803,那么其将被视为正常存取,这是因为无效操作802已在地址范围的此部分上完成。如果CPU存取到区1 801的映射,那么存取将被视为高速缓存未命中,这是因为此区可具有无效数据,且行将被标记为无效。为了当块无效操作前进到此行时防止第二次使所述行无效,将有效/无效位添加到LRU。当CPU存取是针对所述块无效操作的地址范围内的区1 801时设定此位,从而表示已使所述行无效。
在多个重叠块无效请求的情况中,还可将其合并到并行流中。
ID | 范围 操作 | 开始集合 |
1 | 范围A B1 | 0 |
表1
如表1中所示,CPU可接收覆盖范围A的无效请求ID1,范围A以集合0开始且以所述范围的最大值结束。高速缓存控制器开始执行块无效(BI)操作,且如表2中所示,其可在到达集合20时接收覆盖范围b的第二BI请求ID2。代替等待直到第一操作完成,ID2将在集合20处开始并行执行。
ID | 范围 | 操作 | 开始集合 |
1 | 范围A | B1 | 0 |
2 | 范围B | BI | 20 |
3 | 范围C | BI | 34 |
4 | 范围D | BI | 67 |
表2
此可针对额外BI操作而扩展,举例来说,扩展到在集合34处开始的针对范围C的ID3及在集合67处开始的针对范围D的ID4。
如表3中所示,此方法可针对除BI之外的操作扩展。表3中作为实例展示的额外操作为块写入无效(BWI)及块回写(Bw)。
ID | 范围 | 操作 | 开始集合 |
1 | 范围A | B1 | 0 |
2 | 范围B | BWI | 20 |
3 | 范围C | BI | 34 |
4 | 范围D | BW | 67 |
表3
在前进通过所述集合时,可将经高速缓存的地址与无效操作在进行中的不同范围进行比较,且基于所匹配范围的类型,可在前进到下一集合之前进行BI、WB或WBI。在对具有不同类型的一致性操作的不同地址范围的多个命中的情况中,可以用户特定次序来排定操作的优先级。
Claims (3)
1.一种并行执行多个块无效操作的方法,其包括以下步骤:
接收规定开始地址及将无效的范围的块无效操作请求;
确定随后接收的块无效操作请求是否属于先前接收的块无效操作请求的地址范围内或与其重叠;
针对所有重叠地址,并行执行所述块无效操作。
2.根据权利要求1所述的方法,其中:
与正执行的块操作并行地执行属于所述操作的所述地址范围内或与其重叠的块回写操作请求。
3.根据权利要求1所述的方法,其中:
与正执行的块操作并行地执行属于所述操作的所述地址范围内或与其重叠的块回写与无效操作请求。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/660,003 | 2012-10-25 | ||
US13/660,003 US8977821B2 (en) | 2012-10-25 | 2012-10-25 | Parallel processing of multiple block coherence operations |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103778070A true CN103778070A (zh) | 2014-05-07 |
CN103778070B CN103778070B (zh) | 2018-04-27 |
Family
ID=50548553
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310512856.2A Active CN103778070B (zh) | 2012-10-25 | 2013-10-25 | 多个块一致性操作的并行处理 |
Country Status (2)
Country | Link |
---|---|
US (1) | US8977821B2 (zh) |
CN (1) | CN103778070B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013058745A1 (en) * | 2011-10-18 | 2013-04-25 | Soft Machines, Inc. | Methods and systems for managing synonyms in virtually indexed physically tagged caches |
US9575768B1 (en) | 2013-01-08 | 2017-02-21 | Marvell International Ltd. | Loading boot code from multiple memories |
WO2015015305A1 (en) * | 2013-07-31 | 2015-02-05 | Marvell Word Trade Ltd. | Parallelizing boot operations |
US9690581B2 (en) * | 2013-10-15 | 2017-06-27 | Mil Computing, Inc. | Computer processor with deferred operations |
US10761925B2 (en) * | 2015-03-24 | 2020-09-01 | Nxp Usa, Inc. | Multi-channel network-on-a-chip |
US10846230B2 (en) * | 2016-12-12 | 2020-11-24 | Intel Corporation | Methods and systems for invalidating memory ranges in fabric-based architectures |
CN108733415B (zh) * | 2018-05-16 | 2021-03-16 | 中国人民解放军国防科技大学 | 支持向量随机访存的方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1195809A (zh) * | 1997-04-10 | 1998-10-14 | 国际商业机器公司 | Store(存数)指令结果的前送 |
CN1690952A (zh) * | 2004-04-22 | 2005-11-02 | 国际商业机器公司 | 根据多组高速缓存组预测来选择执行的指令的装置和方法 |
US20100332612A1 (en) * | 2009-06-30 | 2010-12-30 | Bjorn Dag Johnsen | Caching Data in a Cluster Computing System Which Avoids False-Sharing Conflicts |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1182566B1 (en) * | 2000-08-21 | 2013-05-15 | Texas Instruments France | Cache operation based on range of addresses |
US6944721B2 (en) * | 2002-08-08 | 2005-09-13 | International Business Machines Corporation | Asynchronous non-blocking snoop invalidation |
US7076609B2 (en) * | 2002-09-20 | 2006-07-11 | Intel Corporation | Cache sharing for a chip multiprocessor or multiprocessing system |
US8145848B2 (en) * | 2009-11-30 | 2012-03-27 | Oracle America, Inc. | Processor and method for writeback buffer reuse |
US9223717B2 (en) * | 2012-10-08 | 2015-12-29 | Wisconsin Alumni Research Foundation | Computer cache system providing multi-line invalidation messages |
-
2012
- 2012-10-25 US US13/660,003 patent/US8977821B2/en active Active
-
2013
- 2013-10-25 CN CN201310512856.2A patent/CN103778070B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1195809A (zh) * | 1997-04-10 | 1998-10-14 | 国际商业机器公司 | Store(存数)指令结果的前送 |
CN1690952A (zh) * | 2004-04-22 | 2005-11-02 | 国际商业机器公司 | 根据多组高速缓存组预测来选择执行的指令的装置和方法 |
US20100332612A1 (en) * | 2009-06-30 | 2010-12-30 | Bjorn Dag Johnsen | Caching Data in a Cluster Computing System Which Avoids False-Sharing Conflicts |
Also Published As
Publication number | Publication date |
---|---|
CN103778070B (zh) | 2018-04-27 |
US8977821B2 (en) | 2015-03-10 |
US20140122810A1 (en) | 2014-05-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9513904B2 (en) | Computer processor employing cache memory with per-byte valid bits | |
US9298643B2 (en) | Performance and power improvement on DMA writes to level two combined cache/SRAM that is cached in level one data cache and line is valid and dirty | |
CN103729306A (zh) | 经由地址范围检查的多cpu块无效操作绕过 | |
CN106462494B (zh) | 使用存储器容量压缩的存储器控制器,以及相关的基于处理器的系统和方法 | |
CN103778070A (zh) | 多个块一致性操作的并行处理 | |
US9075928B2 (en) | Hazard detection and elimination for coherent endpoint allowing out-of-order execution | |
CN106462495B (zh) | 存储器控制器以及基于处理器的系统和方法 | |
CN101770429B (zh) | 用于在硬件中保存有损失的元数据的元物理地址空间 | |
EP2542973B1 (en) | Gpu support for garbage collection | |
CN101689146B (zh) | 分层的高速缓存标签架构 | |
US20070113013A1 (en) | Microprocessor having a power-saving instruction cache way predictor and instruction replacement scheme | |
EP1278125A2 (en) | Indexing and multiplexing of interleaved cache memory arrays | |
CN102968386B (zh) | 数据供给设备、缓存设备及数据供给方法 | |
JPH07311711A (ja) | データ処理装置とその動作方法及びメモリ・キャッシュ動作方法 | |
EP2562652B1 (en) | System and method for locking data in a cache memory | |
CN115098409A (zh) | 进行阶层式高速缓存系统回存且无效的处理器以及方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
EXSB | Decision made by sipo to initiate substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |