CN107015923A - 用于管理探听操作的一致性互连和包括其的数据处理装置 - Google Patents
用于管理探听操作的一致性互连和包括其的数据处理装置 Download PDFInfo
- Publication number
- CN107015923A CN107015923A CN201610849408.5A CN201610849408A CN107015923A CN 107015923 A CN107015923 A CN 107015923A CN 201610849408 A CN201610849408 A CN 201610849408A CN 107015923 A CN107015923 A CN 107015923A
- Authority
- CN
- China
- Prior art keywords
- write
- data
- cpu
- request
- bit
- 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
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/0813—Multiuser, multiprocessor or multiprocessing cache systems with a network or matrix configuration
-
- 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/0815—Cache consistency protocols
- G06F12/0831—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
- G06F12/0833—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means in combination with broadcast means (e.g. for invalidation or updating)
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/68—Details of translation look-aside buffer [TLB]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
提供了一种一致性互连。一致性互连包括探听过滤器和电路,该电路从中央处理单元(CPU)接收写请求、选通比特和写数据;基于写请求生成探听过滤器请求;并且在基本上相同时间向探听过滤器发送探听过滤器请求并且向存储器控制器发送写请求、选通比特和写数据。
Description
对相关申请的交叉引用
此申请要求于2015年9月30日提交的韩国专利申请第10-2015-0137385号的优先权,通过引用将其全部内容合并于此。
技术领域
本发明构思的实施例涉及用于管理探听操作的一致性互连和包括其的数据处理装置。
背景技术
在计算机科学领域,高速缓存一致性是分别包括在共享的存储器系统中的客户端(或处理器)中的本地高速缓存之间的一致特性(consistency)。当每个客户端包括它自己的本地高速缓存并且客户端彼此共享存储器时,如果客户端中的高速缓存的一个被更新,则高速缓存一致性的问题可能发生。
当高速缓存一致性问题发生时,可以执行操作来确保高速缓存一致性,所述操作包括写数据到共享的存储器系统的共享存储器。然而,当共享的存储器系统使用这些操作写数据到共享的存储器时,写操作的延迟可能增加。
发明内容
根据本发明构思的示范性实施例,提供了一种包括探听过滤器和一致性管理器(例如,电路)的一致性互连。一致性管理器从中央处理单元(CPU)接收写请求、选通比特和写数据;基于写请求生成探听过滤器请求;以及在基本上相同时间向探听过滤器发送探听过滤器请求,并且向存储器控制器发送写请求、选通比特和写数据。一致性管理器可以向存储器控制器发送写请求、选通比特和写数据而无需等待从探听过滤器基于探听过滤器请求而生成的探听过滤器响应。
根据本发明构思的示范性实施例,提供了一种数据处理装置,包括:第一CPU;包括高速缓存的第二CPU;存储器控制器;以及与第一CPU、第二CPU和存储器控制器连接的一致性互连。一致性互连包括探听过滤器和一致性管理器。一致性管理器从第一CPU接收写请求、选通比特和写数据;基于写请求生成探听过滤器请求;以及在基本上相同时间向探听过滤器发送探听过滤器请求,并且向存储器控制器发送写请求、选通比特和写数据。
根据本发明构思的示范性实施例,提供了一种包括存储器和与存储器连接的数据处理装置的数据处理系统。数据处理装置包括:第一CPU;包括高速缓存的第二CPU;存储器控制器,与存储器连接;以及与第一CPU、第二CPU和存储器控制器连接的一致性互连。一致性互连包括探听过滤器和一致性管理器(例如,电路)。一致性管理器从第一CPU接收写请求、选通比特和写数据;基于写请求生成探听过滤器请求;以及在基本上相同时间向探听过滤器发送探听过滤器请求,并且向存储器控制器发送写请求、选通比特和写数据。存储器控制器一接收到写请求、选通数据和写数据中的至少一个,存储器控制器160就可以向一致性管理器输出写完成响应。
根据本发明构思的示范性实施例,提供了一种包括中央处理单元(CPU)的数据处理装置,该数据处理装置包括:高速缓存;存储器控制器,与存储器连接;以及与CPU和存储器控制器连接的一致性互连。一致性互连包括:探听过滤器,被配置为执行探听操作来确定存在于存储器中的与写请求关联的数据的副本是否存在于高速缓存中,以及电路,被配置为接收写请求和写数据,基于写请求来生成探听过滤器请求以请求探听操作的执行,并且在基本上相同时间向探听过滤器发送探听过滤器请求,向存储器控制器发送写请求,并且向存储器控制器发送写数据。
附图说明
图1是根据发明构思的示范性实施例的数据处理系统的框图;
图2是用于说明图1中所示的数据处理系统的完全高速缓存线写的数据流的示图;
图3是用于说明图1中所示的请求跟踪器的项分配和项取消分配的概念图;
图4是用在图1中所示的数据处理系统中的写请求、选通比特和写数据的示图;
图5是用于说明图1中所示的探听过滤器的操作的概念图;
图6是用于说明图1中所示的数据处理系统的部分高速缓存线写的数据流的示图;
图7是用在执行图6中的部分高速缓存线写的数据处理系统中的写请求、选通比特和写数据的示图;
图8是根据本发明构思的示范性实施例的图1中所示的数据处理系统的操作的流程图;
图9是根据发明构思的示范性实施例的数据处理系统的框图;
图10是在图9中所示的协议转换器的输出信号的示图;以及
图11是根据本发明构思的示范性实施例的图1中所示的第一中央处理单元(CPU)的详细框图。
具体实施方式
图1是根据发明构思的示范性实施例的数据处理系统100的框图。参照图1,数据处理系统100包括数据处理装置(或设备)101和存储器170。数据处理系统100(或图9中的100A)可以是个人计算机(PC)或移动设备。移动设备可以被实现为膝上型计算机、蜂窝手机、智能手机、平板PC、个人数字助理(PDA)、企业数字助理(EDA)、数字静态相机、数字视频相机、便携式多媒体播放器(PMP)、个人导航设备或便携式导航设备(PND)、手持游戏机、移动互联网设备(MID)、可穿戴计算机、物联网(IoT)设备、万物联网(internet ofeverything,IoE)设备或无人驾驶机,但是本发明构思不限于这些示例。
数据处理装置101可以控制存储器170的写操作和读操作。存储器170可以是动态随机存取存储器(DRAM)。在示范性实施例中,存储器170是非易失性存储器。数据处理装置101可以是集成电路(IC)、片上系统(SoC)、处理器、应用处理器(AP)、移动AP、芯片集或芯片组。例如,在系统级封装(system-in-package,SiP)中,包括存储器170的第二封装可以堆叠在包括数据处理装置101的第一封装上面或之上,但是本发明构思不限于此。
数据处理装置101可以包括多个中央处理单元(CPU)110和120、多个输入/输出(I/O)设备130和131、一致性互连(或一致性互连设备或一致性互连架构)140和存储器控制器160。例如,CPU 110和120以及I/O设备130和131每个可以用作主设备(master)。
CPU 110和120可以分别包括高速缓存——CACHE1和CACHE2。例如,CACHE1和CACHE2的每个可以是级别-1高速缓存和/或级别-2高速缓存。在实施例中,级别-2高速缓存比级别-1高速缓存具有更高的存储容量或更高的延迟。CPU 110和120的每个可以是处理器,并且CPU 110和120的一个可以是图形处理单元(GPU)。
I/O设备130和131的每个可以与CPU 110和120的每个共享数据,并且可以生成或触发一致性事务。例如,一致性事务可以是事务触发(或引起)探听或探听操作,并且事务可以是写操作或读操作。例如,探听操作可以用于确定高速缓存中的数据是否与存储器170中的数据一致。例如,I/O设备130和131的一个可以是图形引擎,但是本发明构思不限于此。
一致性互连140可以包括探听过滤器153和高速缓存一致性管理器150(例如,电路)。高速缓存一致性管理器150可以接收从CPU 110或120输出的写请求和写数据,可以基于写请求生成探听过滤器请求,并且可以同时(在相同时间、在基本上相同时间或者并发地)向探听过滤器153发送探听过滤器请求并且向存储器控制器160发送写请求和写数据。在实施例中,高速缓存一致性管理器150基于探听过滤器请求立即向存储器控制器160发送写请求和写数据,而不等待由探听过滤器153生成的探听过滤器响应。因此,存储在存储器170中的数据可以立即被写数据更新。
一致性互连140可以指一致性互连电路、高速缓存一致性互连或者高速缓存一致性电路。一致性互连140可以包括线的集合,即,线集141(例如,数据总线)、第一接口143、第二接口145、I/O接口147和148、高速缓存一致性管理器(或一致性管理器)150和探听过滤器153。
第一CPU 110和一致性管理器150可以通过线集141和第一接口143彼此通信(发送或接收)命令或数据。第二CPU 120和一致性管理器150可以通过线集141和第二接口145彼此通信命令或数据。I/O设备130和131可以分别通过I/O接口147和148与线集141通信命令或数据。线集141可以包括可以形成一致性互连140的拓扑的线。
在实施例中,一致性管理器150接收从CPU 110或120输出的写请求和写数据,基于写请求生成探听过滤器请求,并且同时(或在基本上相同时间)向探听过滤器153发送探听过滤器请求并且向存储器控制器160发送写请求和写数据。写请求可以是指示相应CPU期望将写数据写到存储器170的信号。一致性管理器150可以包括控制一致性管理器150的操作的请求跟踪器151。在实施例中,一致性管理器150通过处理器、微处理器或逻辑电路来实现。
请求跟踪器151可以包括存储指示写请求的分配和写请求的取消分配的信息的存储器或队列151-1。例如,队列151-1可以包括具有指示要被执行的写的第一值或者指示已经完成写的第二值的项。将参照图3更详细地描述存储器或队列151-1的操作。
在实施例中,当数据处理装置101仅处理完全高速缓存线写(或完全高速缓存线写操作)时,一致性管理器150不包括存储从CPU 110或120输出的写请求的请求缓冲器和存储从CPU 110或120输出的写数据的数据缓冲器。在实施例中,当数据处理装置101仅处理部分高速缓存线写(或部分高速缓存线写操作)或者处理完全高速缓存线写和部分高速缓存线写两者时,一致性管理器150仅包括存储从CPU 110或120输出的选通比特的选通缓冲器159,并不包括存储从CPU 110或120输出的写数据的数据缓冲器。
寄存器152可以存储用于启动或禁用一致性管理器150的控制信号。控制信号可以从CPU 110和120之一输出。例如,当控制信号指示要启动一致性管理器150时,寄存器152可以存储第一值,而当控制信号指示要禁用一致性管理器150时,存储第二值。寄存器152可以通过作为示例的锁存器或存储器来实现。
探听过滤器153可以响应于从请求跟踪器151输出的探听过滤器请求向请求跟踪器151输出指示命中(hit)或未命中(miss)的探听过滤器响应。在实施例中,命中意味着与写数据关联的数据已经在高速缓存中找到,而未命中意味着与写数据关联的数据没有在高速缓存中找到。例如,关联的数据可以是存储在存储器170中的数据的副本。在实施例中,请求跟踪器151和探听过滤器153由处理器和/或其它逻辑电路来实现。探听过滤器153可以包括存储关于CPU 110或120的高速缓存线的标签信息(或高速缓存分配信息)的标签存储器155。例如,标签存储器155可以是静态RAM(SRAM),但是不限于此。虽然在图1中所示的实施例中标签存储器155被实现在探听过滤器153内部,但是在其它实施例中标签存储器155可以被实现在探听过滤器153外部。
例如,探听过滤器153接收包括写地址的探听过滤器请求,使用写地址搜索(或检索)标签存储器,并且根据搜索结果向请求跟踪器输出指示命中或未命中的探听过滤器响应。标签存储器155的搜索和/或探听过滤器响应的输出可以被称为探听操作。
请求跟踪器151可以基于指示命中的探听过滤器响应通过线集141和接口143或145向探听的CPU 110或120输出无效信号(或探听请求),并且可以通过接口143或145和线集141接收从探听的CPU 110或120输出的无效完成响应(或探听完成响应)。例如,当写数据要更新存储在存储器170中的、在探听的CPU的高速缓存中具有副本的数据时,无效信号可以用于删除副本,所以它不会变得与存储器170中更新的数据不一致。
当向探听过滤器153发送探听过滤器请求时,请求跟踪器151可以向存储器控制器160发送从CPU 110或120输出的写请求和写数据。存储器控制器160一接收到写请求和写数据,存储器控制器160就可以向一致性管理器150发送对写请求的写完成响应。存储器控制器160可以向存储器170发送与写请求有关的写命令和写数据。存储器170可以基于写命令将写数据写到存储器170的存储区域。从而,存储器控制器160可以在它实际上完成将写数据写到存储器170之前向一致性管理器发送写完成响应。
在实施例中,请求跟踪器151基于从探听的CPU 110或120输出的无效信号(或探听请求)和从存储器控制器160输出的写完成响应对于请求跟踪器151的用于写请求(或写事务)的项取消分配。在实施例中,请求跟踪器151在取消分配该项之后向CPU 110或120发送写请求完成响应。
图2是用于说明图1中所示的数据处理系统100的完全高速缓存线写的数据流的示图。图3是用于说明图1中所示的请求跟踪器151的项分配和项取消分配的概念图。图4是用在图1中所示的数据处理系统100中的写请求、选通比特和写数据的示图。图5是用于说明图1中所示的探听过滤器153的操作的概念图。
参照图1至图5,一致性管理器150在操作S110中通过第一接口143和线集141接收从第一CPU 110输出的写请求WR、选通比特STROBE和写数据WDATA。
如图4中所示,写请求WR可以包括指示请求的类型的指示符比特201和写地址203。指示符比特201可以包括指示完全高速缓存线写或部分高速缓存线写的比特值。例如,当指示符比特201的比特值是逻辑1(或数据1)时,写请求WR可以指示完全高速缓存线写,而当指示符比特201的比特值是逻辑0(或数据0)时,可以指示部分高速缓存线写。
写地址203可以指定写数据WDATA将被存储在存储器170中的存储区域(例如,位置)。选通比特STROBE的每位可以指示写数据WDATA中的片段(例如,多个字节)中的某个单元(例如,字节)是否将被更新或存储在存储器170的存储区域中。例如,选通比特STROBE可以指示写数据的哪个或哪些部分要覆写存储器170中的相应部分或要被存储在存储器170中。
例如,当高速缓存CACHE1或CACHE2的高速缓存线大于第一CPU 110和第一接口143之间的带宽时,第一CPU 110可以将写数据WDATA划分成多个数据片段WDATA1至WDATA4,并且可以顺序地输出数据片段WDATA1至WDATA4。
当假设高速缓存线或要处理的写数据WDATA是64字节并且第一CPU 110和第一接口143之间的带宽是16字节时,数据片段WDATA1至WDATA4的每个是16字节;用于第一写数据片段WDATA1的选通比特STROBE1是16位;用于第二写数据片段WDATA2的选通比特STROBE2是16位;用于第三写数据片段WDATA3的选通比特是16位;并且用于第四写数据片段WDATA4的选通比特STROBE4是16位。换言之,选通比特STROBE的每个可以对应于写数据WDATA中的字节中的一个。例如,与给定写数据对应的选通比特STROBE的每一位对应于写数据的不同字节。
假设对于完全高速缓存线写,选通比特STROBE的每位是“1”。换言之,写数据WDATA中的所有字节可以被写到存储器170的存储区域。为了方便,假设写数据WDATA是第一写数据片段WDATA1。以与第一写数据片段WDATA1相同或相似的方式来处理写数据片段WDATA2至WDATA4。
图4中所示的写请求WR、选通比特STROBE和写数据WDATA的结构是为了方便而提供的示例。在其它实施例中,写请求WR可以包括选通比特STROBE。
一致性管理器150的请求跟踪器151在操作S110中从第一CPU 110接收写请求WR、选通比特STROBE和写数据WDATA,并且在操作S111中为写请求WR分配项(例如,151-1)。
如图3中所示,请求跟踪器151可以将写请求WR分配到项1Entry1。当写请求WR被分配到项1Entry1时,一致性管理器150可以执行服务,例如,与写请求WR有关的操作。存储器或队列151-1可以包括“n”个项——Entry 0至Entry n-1,并且请求跟踪器151可以将输入请求分配到“n”个项——Entry 0至Entry n-1之一。假设当项1Entry1的比特值WRI被设置为逻辑1时,写请求WR被分配,而当项1Entry1的比特值WRI是逻辑0时,写请求WR被取消分配。
请求跟踪器151基于写请求WR生成探听过滤器请求SFR,并且同时或在基本上相同时间在操作S112-1和S112-2中向探听过滤器153发送探听过滤器请求SFR,并且向存储器控制器160发送写请求WR、选通比特STROBE和写数据WDATA。在实施例中,顺序地或并行地向存储器控制器160发送写请求WR、选通比特STROBE和写数据WDATA。探听过滤器请求SFR被探听过滤器153用来确定与写请求WR关联的数据是否存在于CPU中的一个的高速缓存中。例如,如果写请求WR要用于更新存储器170中的数据,则探听过滤器153在接收到相应的探听过滤器请求SFR时,可以确定数据的副本是(即,命中)否(即,未命中)存在于CPU 120的CACHE2中。
请求跟踪器151不等待探听过滤器响应HIT/MISS响应于探听过滤器请求SFR而从探听过滤器153输出,而是在操作S112-2中立即向存储器控制器160发送写请求WR、选通比特STROBE和写数据WDATA。
存储器控制器160可以接收写请求WR、选通比特STROBE和写数据WDATA当中的至少一个,并且不管写数据WDATA是否已经被写到存储器170就立即向请求跟踪器151发送写完成响应WCR。例如,存储器控制器160可以在它完成将写数据WDATA写到存储器170之前向请求跟踪器151发送写完成响应WCR。
存储器控制器160在操作S114中向存储器170发送与写请求WR有关的写命令WC和写数据WDATA。因为选通比特STROBE的比特值全是逻辑1,所以存储器控制器160在操作S114中向存储器170发送写命令WC和写数据WDATA。存储器170在操作S116中基于写命令WC将写数据WDATA写到存储区域。
探听过滤器153使用包括在探听过滤器请求SFR中的写地址搜索标签存储器155,并且在操作S118中根据搜索结果向请求跟踪器151输出探听过滤器响应HIT/MISS。
如图5中所示,当与包括在探听过滤器请求SFR中的写地址WADD1、WADD2或WADD3对应的标签信息TAG1、TAG2或TAG3存在于标签存储器155中时,探听过滤器153在操作S118中向请求跟踪器151输出指示命中的探听过滤器响应HIT。这里,命中指示与包括在探听过滤器请求SFR中的写地址对应的数据已经存储在第二CPU 120的第二高速缓存CACHE2中。可以基于存储在标签存储器155中的标签信息来确定命中。标签信息可以指示哪个CPU已经在它的高速缓存中存储与写地址对应的数据。例如,标签信息可以包括唯一地标识CPU之一的第一部分,和指示数据是(即,命中)否(即,未命中)存在的第二部分。
然而,当与包括在探听过滤器请求SFR中的写地址WADD4对应的标签信息不存在于标签存储器155中时,探听过滤器153在操作S118中向请求跟踪器151发送指示未命中的探听过滤器响应MISS。这里,未命中指示与包括在探听过滤器请求SFR中的写地址对应的数据还没有存储在第二CPU120的第二高速缓存CACHE2中。可以基于存储在标签存储器155中的标签信息来确定未命中。
在操作S120中,一致性管理器150的请求跟踪器151基于从探听过滤器153输出的指示命中的探听过滤器响应HIT,通过线集141和第二接口145向第二CPU 120发送用于无效存储在第二CPU 120的第二高速缓存CACHE2中的数据当中与写请求WR有关的数据的无效信号INS。例如,无效信号INS可以是用于从第二CPU 120的第二高速缓存CACHE2擦除数据的擦除命令。第二CPU 120可以在操作S122中响应于无效信号INS执行从第二高速缓存CACHE2无效或擦除与写请求WR有关的数据的操作INO。例如,如果变量存储在存储器170中并且变量的副本存储在第二CPU 120的第二高速缓存CACHE2的位置中,则标签存储器155的与变量的写地址关联的项将指示命中,从而如果第一CPU 110请求将存储器170中的变量改变为新值,则请求跟踪器151可以无效或删除第二高速缓存CACHE2中的副本以确保高速缓存一致性。
当完成无效操作INO时,第二CPU 120在操作S124中向一致性管理器150的请求跟踪器151发送无效完成响应INCR。一致性管理器150的请求跟踪器151在操作S128中基于无效完成响应INCR和写完成响应WCR对与写请求WR有关的项1Entry1执行取消分配。例如,请求跟踪器151可以在图3中所示的存储器或队列151-1中将项1Entry1的比特值从逻辑1改变为逻辑0。换言之,写请求WR的分配被取消或取消分配。
一致性管理器150的请求跟踪器151在操作S128中基于关于存储在第二高速缓存CACHE2中并且与写请求WR有关的数据的无效完成响应INCR和从存储器控制器160输出的写完成响应WCR来对与写请求WR有关的项1Entry1执行取消分配。
当完成项1Entry1的取消分配时,一致性管理器150的请求跟踪器151在操作S130中通过线集141和第一接口143向第一CPU 110发送写请求完成响应CPR。
一致性管理器150的请求跟踪器151执行操作S112-1和S112-2,从而降低写请求WR或写事务的延迟。另外,一致性管理器150的请求跟踪器151不包括用于缓冲写请求WR、选通比特STROBE和写数据WDATA的任何缓冲器,从而改善了写请求WR或写事务的缓冲器占用。
图6是用于说明图1中所示的数据处理系统100的部分高速缓存线写的数据流的示图。图7是用在执行图6中的部分高速缓存线写的数据处理系统100中的写请求、选通比特和写数据的示图。
参照图1、图5、图6和图7,一致性管理器150也可以包括选通缓冲器159。一致性管理器150的请求跟踪器151在操作S210中接收从第一CPU 110输出的写请求WR、选通比特STROBE和写数据WDATA。如图7中所示,写请求WR可以包括指示符比特301和写地址303。一致性管理器150的请求跟踪器151可以在操作S211中分配项1Entry1用于写请求WR,如图3中所示。
请求跟踪器151基于写请求WR生成探听过滤器请求SFR,并且在基本上相同时间或同时在操作S212-1和S212-2中向探听过滤器153发送包括写地址303的探听过滤器请求SFR,并且向存储器控制器160发送写请求WR、选通比特STROBE和写数据WDATA(=WDATA1)。请求跟踪器151在操作S212-3中在选通缓冲器159中存储选通比特STROBE。可以同时、在基本上相同时间或并行(或在时间上彼此重叠)地执行操作S212-1、S212-2和S212-3。
请求跟踪器151不等待从探听过滤器基于探听过滤器请求SFR发布探听过滤器响应HIT/MISS,而是可以在操作S212-2中立即向存储器控制器160发送写请求WR、选通比特STROBE和写数据WDATA。
存储器控制器160接收写请求WR、选通比特STROBE和写数据WDATA当中的至少一个,并且在操作S213中向请求跟踪器151发送写完成响应WCR1。换言之,在操作S213中,存储器控制器160可以立即向请求跟踪器151发送写完成响应WCR1,而不管写数据WDATA是否已经被写到存储器170。
存储器控制器160可以基于选通比特STROBE从写数据WDATA(=WDATA1)中选择要写到存储器170的数据WDATAa。例如,存储器控制器160选择与在选通比特STROBE中具有逻辑1的比特值对应的数据单元(例如,字节B3、B4、B10和B16),并且在操作S214中向存储器170发送包括所选择的字节B3、B4、B10和B16的数据WDATAa以及写命令WC。写命令WC可以是与写请求WR有关的命令。存储器170在操作S216中响应于写命令WC将包括字节B3、B4、B10和B16的数据WDATAa写到存储区域171。
探听过滤器153在标签存储器155中搜索与包括在探听过滤器请求SFR中的写地址对应的标签信息,并且在操作S218中根据搜索结果向请求跟踪器151输出探听过滤器响应HIT/MISS。
请求跟踪器151在操作S220中基于指示命中的探听过滤器响应向第二CPU 120发送探听请求SR。探听过滤器响应HIT和/或探听请求SR可以包括写地址或与写地址对应的标签信息。
第二CPU 120在操作S222中响应于探听请求SR对第二高速缓存CACHE2执行搜索操作SO,并且可以在操作S224中根据搜索操作SO的结果向请求跟踪器151发送包括脏数据(dirty data)SDATA的探听响应。这里,脏数据SDATA是已经被第二CPU 120修改的数据。当探听响应包括脏数据SDATA时,执行操作S227。然而,当探听响应不包括脏数据SDATA时,不执行操作S227。例如,如果小于整个高速缓存线的大小的第一大小的变量存在于存储器170中,变量的副本存在于第二CPU 120的高速缓存的高速缓存线的一部分中,高速缓存线的其它部分最近已经被更新(即,脏数据),并且存储器170中的变量要被写数据更新,那么存储器170的具有存储变量的第一部分的、第二大小的区域被更新使得第一部分被写数据更新并且该区域的其余被脏数据更新。
当探听响应包括脏数据SDATA时,请求跟踪器151从第二CPU 120接收脏数据SDATA,并且在操作S228中转化存储在选通缓冲器159中的选通比特STROBE的每位的比特值来生成转化的选通比特ISTROBE。当转化的比特值是逻辑0时,与转换的比特值对应的数据单元(例如,字节)不存储在存储器170中。请求跟踪器151在操作S230中向存储器控制器160发送转化的选通比特ISTROBE和脏数据SDATA。
存储器控制器160可以基于转化的选通比特ISTROBE从脏数据SDATA中选择要写到存储器170的脏数据SDATAa。例如,存储器控制器160选择与在转化的选通比特ISTROBE中具有逻辑1的比特值对应的数据单元(例如,字节D1、D2、D5、D6、D7、D8、D9、D11、D12、D13、D14和D15),并且在操作S232中向存储器170发送包括所选择的字节D1、D2、D5、D6、D7、D8、D9、D11、D12、D13、D14和D15的脏数据SDATAa和写命令WC2。写命令WC2可以是与写请求WR有关的命令。
存储器170在操作S234中响应于写命令WC2将包括所选择的字节D1、D2、D5、D6、D7、D8、D9、D11、D12、D13、D14和D15的脏数据SDATAa写到存储区域171。字节D1、D2、D5、D6、D7、D8、D9、D11、D12、D13、D14、D15和D16通过写操作S216和S234被存储在存储区域171。
当完成脏数据SDATAa的写操作时,存储器170可以生成写完成响应WCR2。写完成响应WCR2可以在操作S236中通过存储器控制器160发送到请求跟踪器151。虽然在图6中所示的实施例中在操作S234之后生成写完成响应WCR2,但是在其它实施例中,存储器控制器160可以接收转化的选通比特ISTRIBE和脏数据SDATA,并且向请求跟踪器151发送写完成响应WCR2。
请求跟踪器151在操作S238中基于探听响应和写完成响应WCR1和WCR2来执行与写请求WR有关的项的取消分配。例如,如参照图3所描述,当可以使用探听响应并且完成数据WDATAa和SDATAa的写操作时,请求跟踪器151对与写请求WR有关的项1Entry1执行取消分配。因此,可以将项1的比特值从逻辑1改变为逻辑0。
当完成取消分配时,请求跟踪器151在操作S240中通过线集141和第一接口143向第一CPU 110发送写请求完成响应CPR。
一致性管理器150执行操作S212-1和S212-2,从而减小写请求WR或写事务的使用期或延迟。
图8是根据本发明构思的示范性实施例的图1中所示的数据处理系统100的操作的流程图。参照图1至图8,一致性管理器150在操作S310中接收从第一CPU 110输出的写请求WR、选通比特STROBE和写数据WDATA。在一些实施例中,选通比特STROBE可以包括或可以不包括在写请求WR中。
一致性管理器150在操作S311中将写请求WR分配到项(例如,执行分配)。一致性管理器150在操作S312中基于包括在写请求WR中的指示符比特201或301来确定写请求WR是用于完全高速缓存线写还是部分高速缓存线写。在其它实施例中,可以在操作S311之前执行操作S312。
例如,当指示符比特201或301的比特值是逻辑1(例如,完全高速缓存线写)时,一致性管理器150执行上面参照图2描述的操作S112-1至S130。换言之,一致性管理器150在操作S314中同时或在基本上相同时间向探听过滤器153发送探听过滤器请求SFR,并且向存储器控制器160发送写请求WR、选通比特STROBE和写数据WDATA。存储器控制器160可以向一致性管理器150发送写完成响应WCR,而不管写数据WDATA是否已经被写到存储器170。
如果一致性管理器150在操作S316中接收到指示命中的探听过滤器响应HIT,则一致性管理器150在操作S318中向第二CPU 120发送无效信号INS。一致性管理器150在操作S320中基于无效完成响应INCR和写完成响应WCR对与写请求WR有关的项(例如,图3中的项1Entry1)执行取消分配。因为一致性管理器150以完全高速缓存线写来执行操作S112-2,所以它不包括任何缓冲器用于存储写请求WR、选通比特STROBE和写数据WDATA。
例如,当指示符比特201或301的比特值是逻辑0(例如,部分高速缓存线写)时,一致性管理器150执行上面参照图6描述的操作S212-1至S240。换言之,一致性管理器150在操作S322中同时或在基本上相同时间向探听过滤器153发送探听过滤器请求SFR,并且向存储器控制器160发送写请求WR、选通比特STROBE和写数据WDATA。另外,一致性管理器150可以与操作S212-1和S212-2并行地或同时地在操作S322中将选通比特STROBE存储在选通缓冲器159中。存储器控制器160可以使用选通比特STROBE将写数据WDATA的部分数据WDATAa写到存储器170。
如果一致性管理器150在操作S324中接收到指示命中的探听过滤器响应HIT,则一致性管理器150在操作S326中向第二CPU 120发送探听请求SR。
第二CPU 120可以响应于探听请求SR向一致性管理器150发送包括脏数据SDATA的探听响应。一致性管理器150在操作S318中接收包括脏数据SDATA的探听响应,并且从选通缓冲器159读取选通比特STROBE,并且在操作S330中转化选通比特STROBE来生成转化的选通比特ISTROBE。
一致性管理器150在操作S332中向存储器控制器160发送转化的选通比特ISTROBE和脏数据SDATA。存储器控制器160可以使用转化的选通比特ISTROBE将脏数据SDATA的部分脏数据SDATAa写到存储器170。
一致性管理器150在操作S334中基于探听响应和写完成响应WCR1和WCR2对与写请求WR有关的项(例如,图3中的项1Entry1)执行取消分配。
在示范性实施例中,图2、图6或图8的步骤被具体化为计算机可读介质上的计算机可读代码。计算机可读记录介质是可以存储作为之后可以由计算机系统读取的程序的数据的任何数据存储设备。计算机可读记录介质的示例包括只读存储器(ROM)、随机存取存储器(RAM)、CD-ROM、磁带、软磁盘和光学数据存储设备。计算机可读记录介质也可以分布在网络耦合的计算机系统上,从而以分布的方式存储和运行计算机可读代码。此外,可以开发函数程序、代码和代码段来完成步骤。
图9是根据发明构思的示范性实施例的数据处理系统100A的框图。图10是在图9中所示的协议转换器185的输出信号的示图。参照图1至图10,数据处理系统100A包括数据处理装置101A和存储器170。
数据处理装置101A可以控制存储器170的写操作和读操作。数据处理装置101A可以是IC、SoC、处理器、AP、移动AP、芯片集或芯片组。数据处理装置101A可以包括多个CPU110和120、一致性互连140、存储器控制器160、总线181、连接到总线181的第一I/O设备130和131以及连接在总线181和第二I/O设备180之间的协议转换器185。
第一I/O设备130和131可以与CPU 110和120共享数据,并且可以生成(或触发)一致性事务(或探听)。第二I/O设备180可以与CPU 110和120共享数据,但是不能够生成(或触发)一致性事务(或探听)。
协议转换器185可以将不能够触发一致性事务(或探听)的第一指示符信号REQA转换为能够触发一致性事务(或探听)的第二指示符信号REQB。例如,第一指示符信号REQA可以与高级可扩展接口3(AXI3)或高级可扩展接口4(AXI4)兼容,并且第二指示符信号REQB可以与AXI一致性扩展(ACE)或ACE-Lite兼容。第一指示符信号REQA和/或第二指示符信号REQB可以是用于指示当前写操作是完全高速缓存线写的专用信号。第一指示符信号REQA可以通过第一专用线发送到协议转换器185,并且第二指示符信号REQB可以通过第二专用线发送到总线181。
当不使用第一指示符信号REQA时,一致性互连140需要接收从第二I/O设备180输出的多个数据中的最后一个或者多个数据的全部来确定多个数据的写操作是完全高速缓存线写还是部分高速缓存线写。换言之,第二I/O设备180不输出与第一指示符信号REQA对应的信号。
然而,当使用第一指示符信号REQA时,协议转换器185将第一指示符信号REQA转换为第二指示符信号REQB,并且因此,一致性互连140能够基于第二指示符信号REQB确定当前写操作是完全高速缓存线写还是部分高速缓存线写,而无需接收最后的数据WDATA4,如图10中所示。例如,第二指示符信号REQB可以被设置为逻辑1。因此,数据处理装置101A可以执行图2中所示的操作。
图11是根据本发明构思的示范性实施例的图1中所示的第一CPU 110的详细框图。参照图11,第一CPU 110包括多个核110-1、110-2、110-3和110-4以及被核110-1至110-4共享的级别-2(L2)高速缓存115。第二CPU 120的结构与第一CPU 110的结构相同或相似。核110-1至110-4可以分别包括处理单元111-1、111-2、111-3和111-4,以及分别包括级别-1(L1)高速缓存113-1、113-2、113-3和113-4。处理单元111-1至111-4的每个可以是中央处理电路。
如上所述,根据本发明构思的至少一个实施例,包括探听过滤器和一致性管理器的一致性互连接收从CPU输出的写请求、选通比特和写数据,并且立即向存储器控制器发送写请求、选通比特和写数据而不等待探听过滤器的操作。因而,存储器控制器一接收到写请求、选通比特和写数据中的至少一个,存储器控制器就响应于一致性管理器发送写完成响应。因为一致性互连立即向存储器控制器发送写请求、选通比特和写数据而不等待探听过滤器的探听响应,所以可以减小探听过滤器中涉及的延迟。
虽然已经参照其示范性实施例特别示出和描述了本发明构思,但是本领域普通技术人员将理解,可以在此进行形式和细节上的各种改变而不脱离本发明构思的精神和范围。
Claims (23)
1.一种一致性互连,包括:
探听过滤器;以及
电路,被配置为接收从第一中央处理单元(CPU)输出的写请求、选通比特和写数据,基于写请求生成探听过滤器请求,并且在基本上相同时间向探听过滤器发送探听过滤器请求并且向存储器控制器发送写请求、选通比特和写数据。
2.如权利要求1所述的一致性互连,其中所述电路向存储器控制器发送写请求、选通比特和写数据而无需等待从探听过滤器基于探听过滤器请求而生成的探听过滤器响应。
3.如权利要求1所述的一致性互连,其中所述电路基于从探听过滤器输出的指示命中的探听过滤器响应来向第二CPU发送用于无效存储在第二CPU的高速缓存中的与写请求有关的数据的无效信号。
4.如权利要求3所述的一致性互连,其中所述电路响应于从第二CPU输出的无效完成响应和从存储器控制器输出的针对写数据的写完成响应,对与写请求有关的项执行取消分配。
5.如权利要求1所述的一致性互连,其中所述电路基于包括在写请求之内的指示符比特来确定是否将选通比特存储在所述电路中包括的选通缓冲器中。
6.如权利要求5所述的一致性互连,其中选通比特的每位指示写数据中包括的相应字节是否要被更新;并且
仅当指示符比特具有指示部分高速缓存线写的比特值时,所述电路才将选通比特存储在选通缓冲器中。
7.如权利要求6所述的一致性互连,
其中所述电路基于从探听过滤器输出的指示命中的探听过滤器响应,生成要发送到第二CPU的探听请求;
其中所述电路基于从第二CPU输出的包括脏数据的探听响应,转化存储在选通缓冲器中的选通比特的每位的比特值来生成转化的选通比特;以及
其中所述电路向存储器控制器发送转化的选通比特和脏数据。
8.如权利要求7所述的一致性互连,其中所述电路响应于从第二CPU输出的探听响应、从存储器控制器输出的针对写数据的第一写完成响应和从存储器控制器输出的针对脏数据的第二写完成响应,对与写请求有关的项执行取消分配。
9.一种数据处理装置,包括:
第一中央处理单元(CPU);
包括高速缓存的第二CPU;
存储器控制器;以及
与第一CPU、第二CPU和存储器控制器连接的一致性互连,
其中一致性互连包括:
探听过滤器;以及
电路,被配置为从第一CPU接收写请求、选通比特和写数据,基于写请求生成探听过滤器请求,并且在基本上相同时间向探听过滤器发送探听过滤器请求并且向存储器控制器发送写请求、选通比特和写数据。
10.如权利要求9所述的数据处理设备,其中所述电路基于从探听过滤器输出的指示命中的探听过滤器响应来向第二CPU发送用于无效存储在高速缓存中的与写请求有关的数据的无效信号。
11.如权利要求10所述的数据处理装置,其中所述电路响应于从第二CPU输出的无效完成响应和从存储器控制器输出的针对写数据的写完成响应,对与写请求有关的项执行取消分配。
12.如权利要求9所述的数据处理装置,其中所述电路基于包括在写请求之内的指示符比特来确定是否将选通比特存储在所述电路中包括的选通缓冲器中。
13.如权利要求12所述的数据处理装置,其中选通比特的每位指示写数据中包括的相应字节是否要被更新;并且
仅当指示符比特具有指示部分高速缓存线写的比特值时,所述电路才将选通比特存储在选通缓冲器中。
14.如权利要求13所述的数据处理装置,
其中所述电路基于从探听过滤器输出的指示命中的探听过滤器响应,生成要发送到第二CPU的探听请求;
其中所述电路基于从第二CPU输出的包括脏数据的探听响应,转化存储在选通缓冲器中的选通比特的每位的比特值来生成转化的选通比特;以及
其中所述电路向存储器控制器发送转化的选通比特和脏数据。
15.如权利要求14所述的数据处理装置,其中所述电路响应于从第二CPU输出的探听响应、从存储器控制器输出的针对写数据的第一写完成响应和从存储器控制器输出的针对脏数据的第二写完成响应,执行与写请求有关的项的取消分配。
16.一种数据处理系统,包括:
存储器;以及
数据处理装置,与存储器连接,
其中所述数据处理装置包括:
第一中央处理单元(CPU);
包括高速缓存的第二CPU;
与存储器连接的存储器控制器;以及
与第一CPU、第二CPU和存储器控制器连接的一致性互连,
其中所述一致性互连包括:
探听过滤器;以及
电路,被配置为从第一CPU接收写请求、选通比特和写数据,基于写请求生成探听过滤器请求,并且在基本上相同时间向探听过滤器发送探听过滤器请求并且向存储器控制器发送写请求、选通比特和写数据。
17.如权利要求16所述的数据处理系统,其中所述存储器控制器一接收到写请求、选通比特和写数据当中的至少一个,所述存储器控制器就向电路输出写完成响应。
18.如权利要求17所述的数据处理系统,
其中所述电路基于从探听过滤器输出的指示命中的探听过滤器响应来向第二CPU发送用于无效存储在高速缓存中的与写请求有关的数据的无效信号;以及
其中所述电路响应于从第二CPU输出的无效完成响应和写完成响应,对与写请求有关的项执行取消分配。
19.如权利要求16所述的数据处理系统,其中所述写请求包括指示符比特,选通比特的每位指示包括在写数据中的相应字节是否要被更新,仅当指示符比特具有指示部分高速缓存线写的比特值时,所述电路才将选通比特存储在选通缓冲器中,并且所述存储器控制器基于选通比特将写数据的部分写到存储器。
20.如权利要求19所述的数据处理系统,
其中所述电路基于从探听过滤器输出的指示命中的探听过滤器响应来生成探听请求,向第二CPU发送探听请求,基于从第二CPU输出的包括脏数据的探听响应转化存储在选通缓冲器中的选通比特的每位的比特值来生成转化的选通比特,并且向存储器控制器发送转化的选通比特和脏数据;以及
其中存储器控制器基于转化的选通比特来将脏数据的部分写到存储器。
21.一种数据处理装置,包括:
包括高速缓存的中央处理单元(CPU);
与存储器连接的存储器控制器;以及
与CPU和存储器控制器连接的一致性互连,
其中所述一致性互连包括:
探听过滤器,被配置为执行探听操作来确定存在于存储器中的与写请求关联的数据的副本是否存在于高速缓存中;以及
电路,被配置为接收写请求和写数据,基于所述写请求来生成探听过滤器请求以请求探听操作的执行,并且在基本上相同时间向探听过滤器发送探听过滤器请求,向存储器控制器发送写请求,并且向存储器控制器发送写数据。
22.如权利要求21所述的数据处理装置,其中写请求包括指示写数据的哪些字节要被更新的多个选通比特。
23.如权利要求21所述的数据处理设备,其中所述电路向存储器控制器发送写请求和写数据而无需等待从探听过滤器基于探听过滤器请求而生成的探听过滤器响应。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2015-0137385 | 2015-09-30 | ||
KR1020150137385A KR102428563B1 (ko) | 2015-09-30 | 2015-09-30 | 수눕 작동을 관리하는 코히런트 인터커넥트와 이를 포함하는 데이터 처리 장치들 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107015923A true CN107015923A (zh) | 2017-08-04 |
CN107015923B CN107015923B (zh) | 2022-03-04 |
Family
ID=58407251
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610849408.5A Active CN107015923B (zh) | 2015-09-30 | 2016-09-23 | 用于管理探听操作的一致性互连和包括其的数据处理装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10198357B2 (zh) |
KR (1) | KR102428563B1 (zh) |
CN (1) | CN107015923B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10248565B2 (en) * | 2016-09-19 | 2019-04-02 | Qualcomm Incorporated | Hybrid input/output coherent write |
US10339060B2 (en) * | 2016-12-30 | 2019-07-02 | Intel Corporation | Optimized caching agent with integrated directory cache |
US11604730B2 (en) * | 2020-06-26 | 2023-03-14 | Intel Corporation | Redundant cache-coherent memory fabric |
US11354239B2 (en) | 2020-09-18 | 2022-06-07 | Microsoft Technology Licensing, Llc | Maintaining domain coherence states including domain state no-owned (DSN) in processor-based devices |
US20220107897A1 (en) * | 2021-12-15 | 2022-04-07 | Intel Corporation | Cache probe transaction filtering |
GB2620198B (en) * | 2022-07-01 | 2024-07-24 | Advanced Risc Mach Ltd | Coherency control |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5428761A (en) * | 1992-03-12 | 1995-06-27 | Digital Equipment Corporation | System for achieving atomic non-sequential multi-word operations in shared memory |
CN1111774A (zh) * | 1993-09-20 | 1995-11-15 | 国际商业机器公司 | 对高速缓冲存储器探测粒度的动态管理 |
US20060143403A1 (en) * | 2004-12-28 | 2006-06-29 | International Business Machines Corporation | Early coherency indication for return data in shared memory architecture |
CN1965285A (zh) * | 2003-07-22 | 2007-05-16 | 米克伦技术公司 | 用于基于集线器的存储系统中直接存储器访问的设备和方法 |
CN101042678A (zh) * | 2006-03-23 | 2007-09-26 | 国际商业机器公司 | 数据处理的单元、系统和方法 |
CN101097545A (zh) * | 2006-06-29 | 2008-01-02 | 英特尔公司 | 独占所有权探听过滤器 |
CN101523361A (zh) * | 2006-10-17 | 2009-09-02 | Arm有限公司 | 数据处理设备中对共享存储器的写访问请求的处理 |
US20090313402A1 (en) * | 2008-06-17 | 2009-12-17 | Nec Electronics Corporation | FIFO device and method of storing data in FIFO buffer |
US20110161346A1 (en) * | 2009-12-30 | 2011-06-30 | Yan Solihin | Data storage and access in multi-core processor architectures |
CN104298567A (zh) * | 2014-10-31 | 2015-01-21 | 亚信科技(南京)有限公司 | 一种保障消息处理一致性的系统及方法 |
US20150046616A1 (en) * | 2013-08-12 | 2015-02-12 | Frode Milch Pedersen | Peripheral registers with flexible data width |
CN104615576A (zh) * | 2015-03-02 | 2015-05-13 | 中国人民解放军国防科学技术大学 | 面向cpu+gpu处理器的混合粒度一致性维护方法 |
US20150199290A1 (en) * | 2014-01-13 | 2015-07-16 | Arm Limited | Data processing system and method for handling multiple transactions |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6266743B1 (en) * | 1999-02-26 | 2001-07-24 | International Business Machines Corporation | Method and system for providing an eviction protocol within a non-uniform memory access system |
US8635410B1 (en) | 2000-07-20 | 2014-01-21 | Silicon Graphics International, Corp. | System and method for removing data from processor caches in a distributed multi-processor computer system |
US6976132B2 (en) * | 2003-03-28 | 2005-12-13 | International Business Machines Corporation | Reducing latency of a snoop tenure |
US7284097B2 (en) | 2003-09-30 | 2007-10-16 | International Business Machines Corporation | Modified-invalid cache state to reduce cache-to-cache data transfer operations for speculatively-issued full cache line writes |
US7702858B2 (en) | 2007-06-05 | 2010-04-20 | Apple Inc. | Latency reduction for cache coherent bus-based cache |
US8131941B2 (en) | 2007-09-21 | 2012-03-06 | Mips Technologies, Inc. | Support for multiple coherence domains |
CN102016810A (zh) * | 2008-04-22 | 2011-04-13 | Nxp股份有限公司 | 具有允许写入未预先加载的高速缓存行的高速缓存电路的多处理电路 |
US8250311B2 (en) | 2008-07-07 | 2012-08-21 | Intel Corporation | Satisfying memory ordering requirements between partial reads and non-snoop accesses |
US7925840B2 (en) | 2008-09-05 | 2011-04-12 | Arm Limited | Data processing apparatus and method for managing snoop operations |
US9547596B2 (en) | 2009-12-24 | 2017-01-17 | Arm Limited | Handling of a wait for event operation within a data processing apparatus |
GB2481232A (en) | 2010-06-16 | 2011-12-21 | Advanced Risc Mach Ltd | Cache for a multiprocessor system which can treat a local access operation as a shared access operation |
-
2015
- 2015-09-30 KR KR1020150137385A patent/KR102428563B1/ko active IP Right Grant
-
2016
- 2016-08-18 US US15/240,212 patent/US10198357B2/en active Active
- 2016-09-23 CN CN201610849408.5A patent/CN107015923B/zh active Active
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5428761A (en) * | 1992-03-12 | 1995-06-27 | Digital Equipment Corporation | System for achieving atomic non-sequential multi-word operations in shared memory |
CN1111774A (zh) * | 1993-09-20 | 1995-11-15 | 国际商业机器公司 | 对高速缓冲存储器探测粒度的动态管理 |
CN1965285A (zh) * | 2003-07-22 | 2007-05-16 | 米克伦技术公司 | 用于基于集线器的存储系统中直接存储器访问的设备和方法 |
US20060143403A1 (en) * | 2004-12-28 | 2006-06-29 | International Business Machines Corporation | Early coherency indication for return data in shared memory architecture |
CN101042678A (zh) * | 2006-03-23 | 2007-09-26 | 国际商业机器公司 | 数据处理的单元、系统和方法 |
CN101097545A (zh) * | 2006-06-29 | 2008-01-02 | 英特尔公司 | 独占所有权探听过滤器 |
CN101523361A (zh) * | 2006-10-17 | 2009-09-02 | Arm有限公司 | 数据处理设备中对共享存储器的写访问请求的处理 |
US20090313402A1 (en) * | 2008-06-17 | 2009-12-17 | Nec Electronics Corporation | FIFO device and method of storing data in FIFO buffer |
US20110161346A1 (en) * | 2009-12-30 | 2011-06-30 | Yan Solihin | Data storage and access in multi-core processor architectures |
US20150046616A1 (en) * | 2013-08-12 | 2015-02-12 | Frode Milch Pedersen | Peripheral registers with flexible data width |
US20150199290A1 (en) * | 2014-01-13 | 2015-07-16 | Arm Limited | Data processing system and method for handling multiple transactions |
CN104298567A (zh) * | 2014-10-31 | 2015-01-21 | 亚信科技(南京)有限公司 | 一种保障消息处理一致性的系统及方法 |
CN104615576A (zh) * | 2015-03-02 | 2015-05-13 | 中国人民解放军国防科学技术大学 | 面向cpu+gpu处理器的混合粒度一致性维护方法 |
Non-Patent Citations (1)
Title |
---|
窦瑞玲: "分片式处理器上非均匀一致缓存的设计与优化", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Also Published As
Publication number | Publication date |
---|---|
KR102428563B1 (ko) | 2022-08-03 |
KR20170038268A (ko) | 2017-04-07 |
CN107015923B (zh) | 2022-03-04 |
US20170091092A1 (en) | 2017-03-30 |
US10198357B2 (en) | 2019-02-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107015923A (zh) | 用于管理探听操作的一致性互连和包括其的数据处理装置 | |
CN102662868B (zh) | 用于处理器的动态组相联高速缓存装置及其访问方法 | |
CN103324584B (zh) | 用于多核处理器中非一致性高速缓存的系统和方法 | |
US9697111B2 (en) | Method of managing dynamic memory reallocation and device performing the method | |
EP3871096B1 (en) | Hybrid use of non-volatile memory as storage device and cache | |
JP5348429B2 (ja) | 持続性メモリのためのキャッシュコヒーレンスプロトコル | |
EP3639144B1 (en) | Memory management in non-volatile memory | |
CN106484628A (zh) | 基于事务的混合存储器模块 | |
CN105095116A (zh) | 缓存替换的方法、缓存控制器和处理器 | |
CN109154911A (zh) | 用于监视高速缓存行在不同的高速缓存级下的状态的阴影标签存储器 | |
CN105335308B (zh) | 对存储设备的访问信息处理方法和装置、系统 | |
CN102859504B (zh) | 复制数据的方法和系统以及获得数据副本的方法 | |
JP2021034052A (ja) | 異種メモリを有するメモリシステム、これを含むコンピュータシステム及びそのデータ管理方法 | |
CN115794675B (zh) | 写数据方法、装置、图形处理系统、电子组件及电子设备 | |
US20240289275A1 (en) | Data processing method and apparatus, and cache, processor and electronic device | |
KR20230028145A (ko) | 상호 연결된 장치들 간의 데이터 전송을 위한 시스템, 방법 및 장치 | |
TW201837715A (zh) | 共享替換策略電腦快取系統,以及用於在讀取操作期間及在寫入操作期間管理電腦快取中的共享替換的方法 | |
CN110321057A (zh) | 具有增强io性能确定性的缓存的存储设备 | |
CN117389914B (zh) | 缓存系统、缓存写回方法、片上系统及电子设备 | |
CN116775560B (zh) | 写分配方法、缓存系统、片上系统、电子组件及电子设备 | |
CN117992360A (zh) | 存储系统及存储方法 | |
US11527036B2 (en) | Coherency gathering for ray tracing | |
US10331385B2 (en) | Cooperative write-back cache flushing for storage devices | |
CN109634583A (zh) | 一种基于SystemC的GPU颜色存储Cache模块的硬件TLM模型及实现结构 | |
US10216454B1 (en) | Method and apparatus of performing a memory operation in a hierarchical memory assembly |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |