CN104471555A - 用于高速缓存系统的多级互联系统及多级互联方法 - Google Patents

用于高速缓存系统的多级互联系统及多级互联方法 Download PDF

Info

Publication number
CN104471555A
CN104471555A CN201480001302.9A CN201480001302A CN104471555A CN 104471555 A CN104471555 A CN 104471555A CN 201480001302 A CN201480001302 A CN 201480001302A CN 104471555 A CN104471555 A CN 104471555A
Authority
CN
China
Prior art keywords
data
address
request
write
read
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
Application number
CN201480001302.9A
Other languages
English (en)
Other versions
CN104471555B (zh
Inventor
黄锡霖
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.)
MediaTek Singapore Pte Ltd
Original Assignee
MediaTek Singapore Pte Ltd
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
Application filed by MediaTek Singapore Pte Ltd filed Critical MediaTek Singapore Pte Ltd
Publication of CN104471555A publication Critical patent/CN104471555A/zh
Application granted granted Critical
Publication of CN104471555B publication Critical patent/CN104471555B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/32Handling requests for interconnection or transfer for access to input/output bus using combination of interrupt and burst mode transfer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0607Interleaved addressing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • G06F12/0846Cache with multiple tag or data arrays being simultaneously accessible
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0893Caches characterised by their organisation or structure
    • G06F12/0897Caches characterised by their organisation or structure with two or more cache hierarchy levels
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration

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

用于高速缓存系统的多级互联系统及多级互联方法
交叉引用
本发明主张在2013年4月30日提出的申请号为61/817,424的美国临时专利申请的优先权。因此在全文中合并参考这个美国临时专利申请案。
技术领域
本发明是有关于存取已缓冲的数据(例如,高速缓存数据),特别是有关于用于具有标记存储器和数据存储器的高速缓存系统的多级互联系统及多级互联方法。
背景技术
在当今的系统中,与处理数据的时间相比,将数据(例如,指令)传入处理器中的时间很长。因此,在处理器的出入端形成瓶颈。高速缓存存储器有助于减少将数据移入至处理器和移出处理器的时间。高速缓存存储器可以服务(serve)读请求。当高速缓存存储器包括由读请求请求的数据时,该事务称为高速缓存命中。当高速缓存存储器不包括由读请求请求的信息时,该事务称为高速缓存缺失。此外,高速缓存存储器也可以服务写请求。
最近,多核或多处理器设计已经在现代计算应用中成为普遍做法。有关多个智能体共享的高速缓存存储器,需要服务从这些智能体发出的读请求和写请求。因此,在智能体和共享的高速缓存存储器之间需要互联结构以适当地调度读请求和写请求。
发明内容
根据本发明的示范性实施方式,提出一种用于具有标记存储器和数据存储器的高速缓存系统的多级互联系统和多级互联方法。提出的多级互联调度支持混合的数据布局,以实现本地化(locality)高带宽和高缓存。
根据本发明的第一方面,揭示了用于具有标记存储器和数据存储器的多级互联系统。多级互联系统包括地址互联调度装置和数据互联调度装置。地址互联调度装置执行标记存储体仲裁以调度对于标记存储器的多个标记存储体的多个地址请求。数据互联调度装置执行数据存储体仲裁以调度对于数据存储器的多个数据存储体的多个数据请求。
根据本发明的第二方面,揭示了用于具有标记存储器和数据存储器的多级互联方法。多级互联系统包括:执行标记存储体仲裁以调度对于标记存储器的多个标记存储体的多个地址请求;以及执行数据存储体仲裁以调度对于数据存储器的多个数据存储体的多个数据请求。
在参阅随后的通过附图解释说明的优选具体实施方式的详尽描述后,本领域的技术人员便可了解本发明的上述或者其他发明目的。
附图说明
图1为根据本发明实施方式的多级互联系统的方框图。
图2为图1所示的仲裁器的实施方式的示意图。
图3为图2所示的队列的第一实施方式的示意图。
图4为图2所示的队列的第二实施方式的示意图。
图5为图2所示的读仲裁器的实施方式的示意图。
图6为图2所示的写仲裁器的实施方式的示意图。
图7为图1所示的地址互联调度装置中的读地址XBAR开关的示意图。
图8为图1所示的地址互联调度装置的写地址XBAR开关的示意图。
图9为图1所示的数据互联调度装置中的写数据XBAR开关的示意图。
图10为图1所示的数据互联调度装置中的读数据XBAR开关的示意图。
图11为根据本发明实施方式的数据存储器的数据存储体中存储的数据的第一布局的示意图。
图12为根据本发明实施方式的数据存储器的数据存储体中存储的数据的第二布局的示意图。
具体实施方式
在说明书及前述的权利要求当中使用了某些词汇来指称特定的元件。所属领域中普通技术人员应可理解,硬件制造商可能会用不同的名词来称呼相同个元件。本说明书及前述的权利要求并不以名称的差异来作为区分元件的方式,而是以元件在功能上的差异来作为区分的准则。在通篇说明书及前述的权利要求当中所提及的“包含”为开放式的用语,故应解释成“包含但不限定于”。以外,“耦接”一词在此包含任何直接及间接的电气连接手段。因此,若文中描述第一装置耦接于第二装置,则代表该第一装置可直接电气连接于该第二装置,或通过其它装置或连接手段间接地电气连接至该第二装置。
本发明的一个主要技术特征是使用多级互联调度以分别提供地址请求调度和数据请求调度,并由此降低布置和布局的复杂性。本发明的另一个主要技术特征是将读请求和写请求分离至不同的端口,以代替将读请求和写请求合并至相同端口,并由此使得读操作和写操作可以并行处理,以增加吞吐量带宽(throughput bandwidth)。具体细节将详述如下。
图1为根据本发明实施方式的多级互联系统的方框图。多级互联系统100支持分离的地址请求调度和数据请求调度,以分别从高速缓存系统10读数据以及将数据写入高速缓存系统10。具体地,对于读高速缓存数据存储器操作的读请求和写高速缓存数据存储器操作的写请求中的每一个来说,地址请求调度跟随在数据请求调度之后。如图1所示,高速缓存系统10包括标记存储器12和数据存储器14,其中标记存储器12和数据存储器14均具有可以单独存取的多个存储体(bank)。举例来说,用于存储高速缓存数据(即,缓存指令)的数据存储器14包括数据存储体15_1~数据存储体15_4、以及用于存储标记(即,部分存储地址)的标记存储器12包括标记存储体13_1~标记存储体13_4。地址请求调度将地址请求调度并分派(dispatch)至标记存储体13_1~标记存储体13_4以用于标记匹配测试(即,高速命中/缺失检测),以及数据请求调度将数据请求调度并分派至数据存储体15_1~数据存储体15_4以用于高速缓存数据存取。请注意,在标记存储器12中的标记存储体的数目和在数据存储器14中的数据存储体的数目仅用于解释说明,而并非作为本发明的限制条件。
多级互联系统100包括仲裁器设备102、地址互联调度装置104、多个地址请求(address request,ARQ)队列(地址请求队列105_1~地址请求队列105_4)、标记匹配器110、多个命中数据请求(data request,DRQ)队列(命中数据请求队列107_1~命中数据请求队列107_4)、缺失数据请求队列108、以及数据互联调度装置109。其中,仲裁器设备102具有包括于其中的多个仲裁模块(仲裁模块103_1~仲裁模块103_4);标记匹配器110,具有包括于其中的多个标记匹配单元(标记匹配单元106_1~标记匹配单元106_4)。高速缓存系统10由多个智能体(agent)共享。因此,仲裁器设备102通过多个输入端口101耦接于多个智能体,并作为接收从多个智能体发出的读请求和写请求的界面。可以根据用于标记匹配测试的地址请求(用于读操作的地址请求Raddr或用于写操作的地址请求Waddr)和用于实际高速缓存数据存取的数据请求(用于读操作的数据请求Rentry或用于写操作的数据请求Wentry)来处理每一个读请求和写请求。举例来说,地址请求指示由读请求读出的存储地址或由写请求写入的存储地址,以及数据请求要求从存储空间读出数据或将数据写入存储空间,其中存储空间位于由读/写请求指定的存储地址。
为降低物理布局的复杂性,可以将数个输入端口101在仲裁模块103_1~103_4处合并。请参考图2,图2为图1所示的仲裁器设备102的实施方式的示意图。如图2所示,K*L个输入端口(输入端口Port(1,1)、输入端口Port(1,2)、…、输入端口Port(L,K))被合并为L个输出端口(输出端口PortM1~输出端口PortML)。具体地,将K个输入端口合并为1个输出端口,然后将其连接至下一个互联的结构网络(fabric network)(例如,如图1所示的地址互联调度装置104)。在提出的多级互联系统采用读请求和写请求的独立处理的情况下,仲裁模块MFB_1~仲裁模块MFB_L(例如,图1所示的仲裁模块103_1~仲裁模块103_4)中的每一个被配置为包括多个仲裁器,多个地址队列,以及多个数据队列。仲裁器具有读仲裁器202和写仲裁器212。读仲裁器202用于读请求仲裁,写仲裁器212用于写请求仲裁。地址队列具有读地址队列206和写地址队列216。读地址队列206用于存储已仲裁的读请求的读地址请求,写地址队列216用于存储已仲裁的写请求的写地址请求。数据队列具有读数据队列204和写数据队列214。读数据队列204用于存储从高速缓存系统10的数据存储器14获得的读数据,写数据队列214用于存储写入至高速缓存系统10的数据存储器14的写数据。具体地,读仲裁器202基于由输入端口Port(1,1)~输入端口Port(1,K)接收的输入的读请求来执行仲裁,并根据仲裁结果将读地址请求(即,由已接收的读请求指定的存储地址)存入读地址队列206。写仲裁器212基于由输入端口Port(1,1)~Port(1,K)接收的输入的写请求来执行仲裁,并根据仲裁结果将写地址请求(即,由已接收的写请求指定的存储地址)存入写地址队列216。
使用共享的缓冲器或单独的先进先出缓冲器(first-in first-out,FIFO)来实现每一个地址队列和数据队列。通过举例的方式,但并非用于限制本发明,可以使用D-型触发器(D-type flip-flops,DFFs)、静态随机存储器单元(static randomaccess memory,SRAM)、或动态随机存储器单元(dynamic random access memory,DRAM)来实现共享的缓冲器或先进先出缓冲器。
请参考图3,图3为图2所示的队列的第一实施方式的示意图。在此实施方式中,实现于一个队列中的先进先出缓冲器的数目等于包括于高速缓存数据存储器中的数据存储体的数目。如图1所示,数据存储器14被划分为四个数据存储体(数据存储体15_1~数据存储体15_4)。因此,四个虚拟输出队列(virtualoutput queues,VOQs)(虚拟输出队列Q1~虚拟输出队列Q4)包括于队列300中以作为分别对应于数据存储体15_1~数据存储体15_4的先进先出缓冲器。举例来说,当使用队列300来实现读地址队列206时,具有数据存储体15_1的存储地址的读地址请求被压入第一虚拟输出队列Q1、具有数据存储体15_2的存储地址的读地址请求被压入第二虚拟输出队列Q2,具有数据存储体15_3的存储地址的读地址请求被压入第三虚拟输出队列Q3,以及具有数据存储体15_4的存储地址的读地址请求被压入第四虚拟输出队列Q4。又例如,当使用队列300来实现写地址队列216时,具有数据存储体15_1的存储地址的写地址请求被压入第一虚拟输出队列Q1、具有数据存储体15_2的存储地址的写地址请求被压入第二虚拟输出队列Q2、具有数据存储体15_3的存储地址的写地址请求被压入第三虚拟输出队列Q3、以及具有数据存储体15_4的存储地址的写地址请求被压入第四虚拟输出队列Q4。为简单起见,虚拟输出队列Q1~虚拟输出队列Q4中的每一个仅存储相同数据存储体的数据存取的地址请求。
请参考图4,图4为图2所示的队列的第二实施方式的示意图。队列400包括共享的缓冲器BUF,而不是先进先出缓冲器,并且队列400进一步包括由相应的仲裁器产生和保持的多个链表(linked lists)。实现于队列400中的链表的数目等于包括于高速缓冲数据存储器中的数据存储体的数目。如图1所示,数据存储器14被划分为四个数据存储体(数据存储体15_1~数据存储体15_4)。因此,四个链表(链表LIST0~链表LIST3)由相应的仲裁器来保持。地址请求可以自由地存储于共享的缓冲器BUF中的任意可用条目中。然而,用于相同数据存储体的数据存取的共享的缓冲器BUF中的已存储的地址请求通过包括于相应的链表中的指针来指向。举例来说,当使用队列400来实现读地址队列206时,具有数据存储体15_1的存储地址的读地址请求被存储于共享的缓冲器BUF的可用条目中,并由添加到链表LIST0的指针来指示;具有数据存储体15_2的存储地址的读地址请求被存储于共享的缓冲器BUF的可用条目中,并由添加到链表LIST1的指针来指示;具有数据存储体15_3的存储地址的读地址请求被存储于共享的缓冲器BUF的可用条目中,并由添加到链表LIST2的指针来指示;以及具有数据存储体15_4的存储地址的读地址请求被存储于共享的缓冲器BUF的可用条目中,并由添加到链表LIST3的指针来指示。又例如,当使用队列400来实现写地址队列216时,具有数据存储体15_1的存储地址的写地址请求被存储于共享的缓冲器BUF的可用条目中,并由添加到链表LIST0的指针来指示;具有数据存储体15_2的存储地址的写地址请求被存储于共享的缓冲器BUF的可用条目中,并由添加到链表LIST1的指针来指示;具有数据存储体15_3的存储地址的写地址请求被存储于共享的缓冲器BUF的可用条目中,并由添加到链表LIST2的指针来指示;以及具有数据存储体15_4的存储地址的写地址请求被存储于共享的缓冲器BUF的可用条目中,并由添加到链表LIST3的指针来指示。
简单来说,根据每个链表,可以有序地通过并非有序地存储于共享的缓冲器BUF中的请求而自共享的缓冲器BUF检索到相同存储体的数据存取的请求。仲裁器可以保持一个链表来查找(trace)对于仅使用一个缓冲器的每一个目标数据存储体的请求。因此,共享的缓冲器BUF和链表LIST0的组合等效于图3中的第一先进先出缓冲器(即,虚拟输出队列Q1);共享的缓冲器BUF和链表LIST1的组合等效于图3中的第二先进先出缓冲器(即,虚拟输出队列Q2);共享的缓冲器BUF和链表LIST2的组合等效于图3中的第三先进先出缓冲器(即,虚拟输出队列Q3);以及共享的缓冲器BUF和链表LIST3的组合等效于图3中的第四先进先出缓冲器(即,虚拟输出队列Q4)。然而,与图4所示的示范性的先进先出的设计相比,图4中的链表为基础的设计能够降低成本和设计的复杂性。
如图2所示,分别处理读地址请求和写地址请求。以这种方式,提出的结构可以在相同数据存储体的相同周期同时服务(serve)读操作和写操作,因此取得2倍的吞吐量带宽(throughput bandwidth)。与具有用于传送读地址请求和写地址请求的单一的地址端口的现有设计相比,本发明提出的结构使用分别传送读地址请求和写地址请求的两个地址端口。举例来说,写地址端口用于传送写数据至高速缓冲数据存储器的写地址请求,然后读地址端口用于从传送高速缓冲数据存储器中读出写入的数据的读地址请求。然而,当接收到的读请求的读地址请求和准许(granted)的写请求的写地址请求具有相同的地址值时,有可能在相同的周期中基于在高速缓冲数据存储器的相同存储空间来执行读操作和写操作。如此一来,要由写操作写入的数据将不会被读操作正确地读回。在较佳的实施方式中,读仲裁器202进一步被配置为具有写后读(read after write,RAW)检测能力。更具体地,读仲裁器202检测已接收的读请求的读地址请求和已准许的写请求的写地址请求是否具有相同的地址值。当检测到接收到的读请求的读地址请求和准许的写请求的写地址请求具有相同的地址值(即,发生写后读)时,读仲裁器202限制(block)读地址请求被后续的地址互联调度装置104调度,直到完成服务准许的写请求的写操作为止。换句话说,确保在相同存储器地址的当前准许的写操作完成之后执行存储器地址的读操作,因此避免了发生不期望的写后读危害。
在本发明的实施方式中,读仲裁器202基于数据存储体15_1~数据存储体15_4的通信量状况(traffic condition)和读地址队列206的存储状况中的至少一个来将读地址请求仲裁至读地址队列206中;以及写仲裁器212基于数据存储体15_1~15_4的通信量状况和写地址队列216的存储状况中的至少一个来将写地址请求仲裁至写地址队列216中。因此,当一个目标数据存储体处于拥塞(congestion)时,读仲裁器206/写仲裁器212可以接收用于不同数据存储体的读地址请求/写地址请求。
在本发明的实施方式中,读仲裁器202和写仲裁器212中的每一个可以采用加权轮询算法(weighted round robin)来执行地址请求仲裁。举例来说,读仲裁器202和写仲裁器212中的每一个分配权重值至仲裁模块MFB_1的输入端口Port(1,1)~输入端口Port(1,K),并基于权重值来仲裁地址请求。请参考图5和图6。图5为图2所示的读仲裁器202的实施方式的示意图,以及图6为图2所示的写仲裁器212的实施方式的示意图。每一个信道(即,每一个输入端口)的加权值可以被编程为“1”或“2”。举例来说,CP_8_DST被分配具有加权值“1”,UX_31_CPL1被分配具有加权值“2”,以及TX_20_IMG被分配具有加权值“1”。因此,当所有的信道(CP_8_DST、UX_31_CPL1、TX_20_IMG)具有同时由读仲裁器仲裁的读请求时,50%准许UX_31_CPL1。又例如,ST_11_DST被分配具有加权值“1”,XY_28_CZB被分配具有加权值“2”,以及VX_3_TB被分配具有加权值“1”。因此,当所有的信道(ST_11_DST、XY_28_CZB、VX_3_TB)具有同时由写仲裁器仲裁的写请求时,50%准许XY_28_CZB。请注意,加权值可以动态地调整以微调最佳性能。
本发明进一步支持在读仲裁器202和写仲裁器212中段(section)编程。下表描述了高速缓冲数据存储器的可编程段(section)尺寸。
图1所示的数据存储器14可以根据上表定义的段尺寸而被划分为多个段。请注意,每个段的尺寸可编程。此外,每个段为N-路组相关联高速缓存,且其具有自己的组(sets)和路(ways)。因此,在每一个段中的标记匹配是独立的。仲裁器设备102(特别是每一个仲裁模块中的读仲裁器和写仲裁器)将从一个信道(即,一个输入端口)接收到的地址请求映射至一个段。具体地,从第一输入端口接收到的地址请求被映射至第一段,以及从第二输入端口接收到的地址请求被映射至不同于第一段的第二段。举例来说,CP_8_DST的读请求被映射至段sec0,UX_31_CPL1的读请求被映射至段sec5,以及TX_20_IMG的读请求被映射至段sec8。简单来说,每一个段将有它自己的标记匹配和高速缓冲存储器存取。进一步,每一个段支持已存储数据的不同布局,例如并行(parallel)的数据布局和串行(serial)的数据布局将在下文中详述,以及可以编程每一个段以采用支持的数据布局。
请再次参考图1,仲裁模块103_1~仲裁模块103_4中的每一个输出读地址请求和写地址请求至地址互联调度装置104。地址互联调度装置104执行标记存储体仲裁以调度对于标记存储器12中的标记存储体13_1~仲裁模块13_4的地址请求以用于标记匹配测试,其中地址请求包括读地址请求和写地址请求。在此实施方式中,使用交叉口闩仲载逻辑单元(crossbar,以下简称为XBAR)结构来实现地址互联调度装置104。图7为图1所示的地址互联调度装置104中的读地址XBAR开关(switch)的示意图。图8为图1所示的地址互联调度装置104的写地址XBAR开关的示意图。由于地址互联调度装置104分离读地址处理和写地址处理,读地址XBAR开关和写地址XBAR开关可以同时激活。其中图7和图8中的每一个多路复用器(multiplexers,MUXs)由地址调度控制。如图7所示,每一个多路复用器具有分别耦接于多个源设备(例如,源设备src0、源设备src1、源设备src2、和源设备src3)的多个输入端口,并进一步具有耦接于对应的目标设备(例如,目标设备dst0、目标设备dst1、目标设备dst2、或目标设备dst3)的一个输出端口。因此,通过基于读地址调度适当地控制多路复用器,一个目标设备可以从一个源设备接收一个读地址。如图8所示,每一个多路复用器具有分别耦接于多个源设备(例如,源设备src0、源设备src1、源设备src2、和源设备src3)的输入端口,并进一步具有耦接于对应的目标设备(例如,目标设备dst0、目标设备dst1、目标设备dst2、或目标设备dst3)的一个输出端口。因此,通过基于写地址调度适当地控制多路复用器,一个目标设备可以从一个源设备接收一个写地址。然而,此仅用于解释说明,而并非用于限制本发明。也就是说,可以使用其他互联结构来实现地址互联调度装置104。
由于标记存储体13_1~标记存储体13_4的数目等于4,使用读/写地址的两个比特来区分标记存储体13_1~标记存储体13_4。在高速缓存系统10采用组相关方案的情况下,由读/写请求来指定的32位存储地址可以具有用作标记的比特、作为线/组选择的比特、用作存储体选择的比特、以及用作线偏移(line offset)的比特。举例来说,在每一个读/写地址请求中的地址比特[8:7]用于确定哪一个标记存储体用于读/写地址请求的标记匹配测试。当地址比特[8:7]等于2’b00时,将读/写地址请求存入地址请求队列105_1;当地址比特[8:7]等于2’b01时,将读/写地址请求存入地址请求队列105_2;当地址比特[8:7]等于2’b10时,将读/写地址请求存入地址请求队列105_3;以及当地址比特[8:7]等于2’b11时,将读/写地址请求存入地址请求队列105_4。因此,可以处理每个标记存储体的高速缓存命中/缺失,而不涉及其他标记存储体的结果。
地址请求队列105_1~地址请求队列105_4中的每一个可以被配置为具有两个并行的地址队列(即,不同的先进先出缓冲器)以同时处理读地址和写地址。如图1所示,地址请求队列105_1~地址请求队列105_4中的每一个具有一个读地址端口和一个写地址端口,其中读地址端口用于输出已队列的读地址请求Raddr(其由自智能体发出的读请求指定的读地址组成),写地址端口用于输出已队列的写地址请求Waddr(其由自智能体发出的写请求指定的写地址组成)。此外,地址请求队列105_1输出读/写地址请求至标记匹配单元106_1以用于高速缓存命中/缺失检测;地址请求队列105_2输出读/写地址请求至标记匹配单元106_2以用于高速缓存命中/缺失检测;地址请求队列105_3输出读/写地址请求至标记匹配单元106_3以用于高速缓存命中/缺失检测;以及地址请求队列105_4输出读/写地址请求至标记匹配单元106_4以用于高速缓存命中/缺失检测。因此,标记匹配设备110对调度不同标记存储体的地址请求独立地应用标记匹配测试(即,高速缓存命中/缺失检测)。具体地,由于地址请求队列105_1~地址请求队列105_4中的每一个允许同时输出一个读地址请求和一个写地址请求至后续的标记匹配单元106_1/标记匹配单元106_2/标记匹配单元106_3/标记匹配单元106_4,标记匹配单元106_1~标记匹配单元106_4中的每一个可以被配置为具有两个独立的标记匹配电路,其中一个标记匹配电路对一个读地址请求应用标记匹配测试以确定对应的读请求请求的读数据是否可以直接从数据存储器14中的读地址读出,以及另一个标记匹配电路对一个写地址请求应用标记匹配测试以确定是否可以直接将对应的写请求请求的写数据写入数据存储器14中的写地址。
如上所述,标记匹配单元106_1~标记匹配单元106_4中的每一个具有两个独立的标记匹配电路。当地址请求队列同时提供一个读地址请求和一个写地址请求至后续的标记匹配电路时,两个独立的标记匹配电路可以完全用于并行地产生读请求高速缓存命中/缺失结果和写请求高速缓存命中/缺失结果。然而,当地址请求队列仅同时提供一个读地址请求(或一个写地址请求)至后续的标记匹配单元时,仅操作两个独立的标记匹配电路的一部分(first half)以产生读请求高速缓存命中/缺失结果(或写请求高速缓存命中/缺失结果);而两个独立的标记匹配电路的另一部分(second half)是空闲的。这将导致降低标记匹配性能。为使得在每一个标记匹配单元中的两个独立的标记匹配电路能完全使用,地址互联调度装置104进一步基于地址请求队列中的读和写队列的信用状况(creditstatus)和数据调度的反馈平衡调度相同标记存储体的读地址请求和写地址请求。
当由标记匹配单元106_1/标记匹配单元106_2/标记匹配单元106_3/标记匹配单元106_4检测到读地址请求的高速缓存命中事件时,将“命中”读数据请求Rentry存储至相应的后续的命中数据请求队列107_1/命中数据请求队列107_2/命中数据请求队列107_3/命中数据请求队列107_3。此外,当由标记匹配单元106_1/标记匹配单元106_2/标记匹配单元106_3/标记匹配单元106_4检测到写地址请求的高速缓存命中事件时,将“命中”写数据请求Wentry存储至相应的后续的命中数据请求队列107_1/命中数据请求队列107_2/命中数据请求队列107_3/命中数据请求队列107_4。由于标记匹配单元106_1~标记匹配单元106_4中的每一个可以被配置为具有两个独立的标记匹配电路,命中数据请求队列107_1~命中数据请求队列107_4中的每一个也可以被配置为具有两个并行的队列(即,不同的先进先出队列)来同时处理“命中”读数据请求Rentry和“命中”写数据请求Wentry。当数据互联调度装置109接受命中数据请求队列107_1~命中数据请求队列107_4中的数据请求时,基于数据存储器14执行读/写操作。
本领域技术人员可知,当高速缓存事件发生时需要额外的高速缓存存储操作。举例来说,基于采用的代替策略,可以选择代替脏的高速缓存线(dirty cacheline)。原先存储于脏的高速缓存线中的数据应该写回主存储器。在此实施方式中,当一个已调度的地址请求发生标记缺失并且确定代替脏的高速缓存线时,缺失数据请求队列108用于存储响应标记缺失而产生的读数据请求Rentry及/或写数据请求Wentry。举例来说,当写地址请求的标记缺失以及选择代替一个脏的高速缓存线时,在代替写的数据发生之前需要读取选择的脏的高速缓存线。选择的脏的高速缓存线的数据读取转到缺失数据请求队列108中的缺失读队列。在准许写选择的脏的高速缓存线的数据之前需要完成读取选择的脏的高速缓存线的数据。因此,当要被代替的高速缓存线不脏时,在数据互联调度装置109接受缺失数据请求队列108中的写数据请求之后,可以基于数据存储器14执行写数据。
又例如,当读地址请求的标记缺失时,请求的数据应该从主存储器中取出。然而,在请求的数据从主存储器中读出之前,应该分配在数据存储器14中的高速缓存线存储从主存储器取出的数据。若选择代替脏的高速缓存线中的一个,一个读数据请求被添加至缺失数据请求队列108中的缺失读队列,以读出原先存储于选择的脏的高速缓存线中的数据。因此,将原先存储于选择的脏的高速缓存线中的数据读出,然后将其写回主存储器。当取出的数据从主存储器中恢复时,写数据请求被添加至缺失数据请求队列108中的缺失写队列中。因此,在缺失数据请求队列108的缺失写队列中的写数据请求由数据互联调度装置109接受之后,取出的数据被写入数据存储器14。
考虑命中率低的情况(例如,低于50%),有可能两个连续的请求中包括一个高速缓存命中的请求和另一个高速缓存缺失的请求。如图1所示,四个命中数据请求队列(命中数据请求队列107_1~命中数据请求队列107_4)具有同时等待数据互联调度装置109接受的四个读数据请求和四个写数据请求。由于在最坏情况下命中数据请求队列107_1~命中数据请求队列107_4的输出结点处的数据请求的最大数目为缺失数据请求队列108的输出结点处的数据请求的最大数目的4倍,若缺失数据请求队列108被指定仅具有允许同时等待数据互联调度装置109接受的一个读数据请求和一个写数据请求的单一信道,则读数据请求和写数据请求的拥塞将发生于缺失数据请求队列108中。为减轻此种拥塞问题,本发明提出配置缺失数据请求队列108具有更多信道(例如,两个信道),以使得允许缺失数据请求队列108具有同时等待数据互联调度装置109接受的两个读数据请求和两个写数据请求,这将使得在缺失数据请求队列108处接受数据请求的可能性增加。
如图1所示,命中数据请求队列107_1~命中数据请求队列107_4和缺失数据请求队列108具有等待接受的数据请求以用于存取数据存储器14。数据互联调度装置109因此执行数据存储体仲裁以调度对于数据存储器14中的数据存储体15_1~数据存储体15_4的数据请求,该数据请求包括读数据请求和写数据请求。在此实施方式中,使用XBAR结构来实现数据互联调度装置109。图9为图1所示的数据互联调度装置109中的写数据XBAR开关的示意图。图10为图1所示的数据互联调度装置109中的读数据XBAR开关的示意图。由于数据互联调度装置109分离读数据处理和写数据处理,读数据XBAR开关和写数据XBAR开关可以同时激活。其中图9和图10中的每一个多路复用器(multiplexers,MUXs)由数据调度控制。如图9所示,每一个多路复用器具有分别耦接于多个源设备(例如,源设备src0、源设备src1、源设备src2、和源设备src3)的多个输入端口,并进一步具有耦接于对应的目标设备(例如,目标设备dst0、目标设备dst1、目标设备dst2、或目标设备dst3)的一个输出端口。因此,通过基于写数据调度适当地控制多路复用器,一个目标设备可以从一个源设备接收一个写数据。如图10所示,每一个多路复用器具有分别耦接于多个目标设备(例如,目标设备dst0、目标设备dst1、目标设备dst2、或目标设备dst3)的输入端口,并进一步具有耦接于对应的源设备(例如,源设备src0、源设备src1、源设备src2、或源设备src3)的一个输出端口。因此,通过基于读数据调度适当地控制多路复用器,一个源设备可以从一个目标设备接收一个读数据。然而,此仅用于解释说明,而并非用于限制本发明。也就是说,可以使用其他互联结构来实现数据互联调度装置109。
在本发明的简单设计中,有可能数据互联调度装置109可以直接参考由地址互联调度装置104做出的地址请求的调度决定,以调度在命中数据请求队列107_1~命中数据请求队列107_4和缺失数据请求队列108中的数据请求。具体地,在标记存储体13_1~命中数据请求队列13_4和数据存储体15_1~命中数据请求队列15_4之间存在有固定的1对1关系。举例来说,当地址请求被调度至标记存储体13_1以用于标记匹配测试时,对应的“命中”/“缺失”数据请求通常被调度至数据存储体15_1以用于数据存取;当地址请求被调度至标记存储体13_2以用于标记匹配测试时,对应的“命中”/“缺失”数据请求通常被调度至数据存储体15_2以用于数据存取;当地址请求被调度至标记存储体13_3以用于标记匹配测试时,对应的“命中”/“缺失”数据请求通常被调度至数据存储体15_3以用于数据存取;以及当地址请求被调度至标记存储体13_4以用于标记匹配测试时,对应的“命中”/“缺失”数据请求通常被调度至数据存储体15_4以用于数据存取。因此,基于地址调度结果,数据互联调度装置109可以轻易地确定数据请求应该转去哪一个数据存储体。
在本发明的简单设计中,互联数据带宽被配置为128比特。因此,在数据互联调度装置109和数据存储器14之间用于数据请求的事务(transaction)为每周期128比特。因此,要求多个周期读或写一个具有线尺寸等于512比特或1K比特的高速缓存线。根据本发明的实施方式,为同时服务(serve)读数据请求和写数据请求,通过使用两个端口的存储器,例如1R1W1028x128静态随机存储器,来实现数据存储器14的每一个数据存储体。
然而,与单一端口的SRAM相比,两个端口的SRAM具有较大的门数和更多的耗电量。在另一个示范性设计中,通过使用单一端口的存储器(例如,1RW512x256静态随机存储器)来实现数据存储器14的每一个数据存储体,以及一个地址请求与具有突发长度(burst length)的多个数据的数据请求相关联。由于突发长度至少等于2,一个读操作或一个写操作可以支持2个周期。在当前周期(例如,偶数周期)中,数据存储器14的数据存储体用作读操作,以及在下一个周期(例如,奇数周期)中,数据存储器14的数据存储体用作写操作。由于地址请求可以具有数据的突发长度(即,一个地址可能有多个数据条目),地址调度可以具有较为宽松的带宽。
在另一个示范性设计中,使用两个单一端口的存储器(例如,两个1RW512x128静态随机存储器)来实现数据存储器14的每一个数据存储体,以及一个地址请求与具有突发长度(burst length)的多个数据的数据请求相关联。对于每一个数据存储体,两个单一端口的静态随机存储器可以作为两个子存储体,该两个子存储体包括一个奇数子存储体和一个偶数子存储体。当数据请求仅存取一个子存储体时,由于不需要激活所有的数据存储体,使用子存储体可以节约电力。
图11为根据本发明实施方式的数据存储器14的数据存储体15_1~数据存储体15_4中存储的数据的第一布局的示意图。在使用一个1RW512x128静态随机存储器实现每一个子存储体的情况下,数据存储器14需要4x2个1RW512x128静态随机存储器。假设一个数据存储线具有的线尺寸等于1K比特,即8x128比特。在此实施方式中,每个存储体采用串行的数据布局。因此,相同的高速缓存线完全在数据存储体中,以及一个标记存储体通常与相同的数据存储体相关联。如图11所示,第0到第7个128比特的数据段来自一个高速缓存线数据,第8到第15个128比特的数据段来自一个高速缓存线数据,第16到第23个128比特的数据段来自一个高速缓存线数据,以及第24到第31个128比特的数据段来自一个高速缓存线数据。进一步,当采用串行的数据布局时,在数据互联调度装置109采用上述关于地址调度结果来确定数据请求的调度/仲裁。
进一步,由于突发长度至少等于2,一个读操作或一个写操作可以支持2个周期。举例来说,在当前周期(例如,偶数周期)中,数据存储器14的数据存储体的偶数子存储体服务读操作,数据存储器14的数据存储体的奇数子存储体服务写操作,以及在下一个周期(例如,奇数周期)中,数据存储器14的数据存储体的奇数子存储体服务写操作,以及数据存储器14的数据存储体的偶数子存储体服务读操作。举例来说,若读操作读数据存储体15_1的偶数子存储体中的第0个128比特的数据段,则与此同时,写操作可以写在数据存储体15_1的奇数子存储体中的第1个128比特的数据段、或第3个128比特的数据段、第5个128比特的数据段、第7个128比特的数据段。
图12为根据本发明实施方式的数据存储器14的数据存储体15_1~数据存储体15_4中存储的数据的第二布局的示意图。在使用一个1RW512x128静态随机存储器实现每一个子存储体的情况下,数据存储器14需要4x2个1RW512x128静态随机存储器。假设一个数据存储线具有的线尺寸等于1K比特,即8x128比特。在此实施方式中,每个存储体采用并行的数据布局。因此,一个高速缓存线被划分为存储于不同的数据存储体中的多个数据段,以及一个标记存储体与不同的数据存储体相关联。如图12所示,第0到第7个128比特的数据段来自一个高速缓存线数据,第8到第15个128比特的数据段来自一个高速缓存线数据,第16到第23个128比特的数据段来自一个高速缓存线数据,以及第24到第31个128比特的数据段来自一个高速缓存线数据。也就是说,一个高速缓存线会跨越相同高速缓存线上用于并行处理的多个数据存储体。一个地址请求可以在一个标记存储体中,但是对应的数据分布在多个数据存储体中。由于标记存储体没有以1对1的方式关联数据存储体,用于发出地址请求至标记存储体的地址调度不是发出数据请求至数据存储体的数据调度。因此,与并行的数据布局一致,由数据互联调度装置109来计算和确定另一个数据调度。具体地,当存在地址请求的高速缓存命中或高速缓存缺失时,由于并行的数据布局,需要外部数据请求存取多个数据存储体。
进一步,由于突发长度至少等于2,一个读操作或一个写操作可以支持2个周期。举例来说,在当前周期(例如,偶数周期)中,数据存储器14的数据存储体的偶数子存储体服务读操作,数据存储器14的数据存储体的奇数子存储体服务写操作,以及在下一个周期(例如,奇数周期)中,数据存储器14的数据存储体的奇数子存储体服务写操作,以及数据存储器14的数据存储体的偶数子存储体服务读操作。举例来说,若读操作读数据存储体15_1的偶数子存储体中的第0个128比特的数据段,则与此同时,写操作可以写在数据存储体15_1的奇数子存储体中的第1个128比特的数据段、或第9个128比特的数据段、第17个128比特的数据段、第25个128比特的数据段。
请注意,无论数据存储器14采用并行的数据布局还是串行的数据布局,高速缓存线返回读请求(例如,请求的高速缓存线的128比特数据段)会基于实际设计的需要而有序(例如,0→1→2…→7)或无序(例如,4→1→7…→0)。
与现有的互联设计相比,本发明提出的多级互联系统能够节约芯片面积并节省电力。充分利用包括用于读操作的互联结构和用于写操作的互联结构的互联硬件。特别是在吞吐量或图像计算系统中,在大约10个周期的互联延迟时间(interconnect latency time)内读地址和写地址将几乎不具有发生写后读危害的条件。大部分时间中,提出的多级互联系统具有同时执行读操作和写操作的全带宽。
虽然本发明已以较佳实施方式揭露如上,然而必须了解其并非用以限定本发明。相反,任何本领域技术人员,在不脱离本发明的精神和范围内,当可做些许更动与润饰,因此本发明的保护范围应当以权利要求书所界定的保护范围为准。

Claims (20)

1.一种多级互联系统,用于具有标记存储器和数据存储器的高速缓存系统,其特征在于,该多级互联系统包括:
地址互联调度装置,执行标记存储体仲裁以调度对于该标记存储器的多个标记存储体的多个地址请求;以及
数据互联调度装置,执行数据存储体仲裁以调度对于该数据存储器的多个数据存储体的多个数据请求。
2.根据权利要求1所述的多级互联系统,其特征在于,该多个地址请求中的至少一个与具有突发长度的多个数据的数据请求相关联。
3.根据权利要求1所述的多级互联系统,其特征在于,该数据互联调度装置参考由该地址互联调度装置做出的该多个地址请求的调度决定来调度该多个数据请求。
4.根据权利要求1所述的多级互联系统,其特征在于,该多级互联系统进一步包括:
标记匹配设备,对调度该多个标记存储体的第一标记存储体的第一地址请求和对调度该多个标记存储体的第二标记存储体的第二地址请求独立地应用标记匹配测试。
5.根据权利要求1所述的多级互联系统,其特征在于,该多个地址请求包括多个读地址请求和多个写地址请求,以及该地址互联调度装置进一步平衡调度相同标记存储体中的多个读地址请求和多个写地址请求。
6.根据权利要求1所述的多级互联系统,其特征在于,该多级互联系统进一步包括:
标记匹配设备,对从该地址互联调度装置输出的每一个已调度的地址请求应用标记匹配测试;
其中,当一个已调度的地址请求发生标记缺失以及确定代替脏的高速缓存线时,该数据互联调度装置进一步调度响应该标记缺失产生的至少一个数据请求。
7.根据权利要求1所述的多级互联系统,其特征在于,该数据存储器被划分为多个段,以及该多级互联系统进一步包括:
仲裁器设备,具有多个输入端口,其中该仲裁器设备将从该多个输入端口的第一输入端口接收的多个地址请求映射至该多个段的第一段,以及将从该多个输入端口的第二输入端口接收的多个地址请求映射至多个段的第二段。
8.根据权利要求7所述的多级互联系统,其特征在于,该第一段和该第二段具有用于存储数据的不同布局。
9.根据权利要求7所述的多级互联系统,其特征在于,可编程该多个段的段尺寸。
10.根据权利要求1所述的多级互联系统,其特征在于,其中该多个地址请求包括多个读地址请求和多个写地址请求,以及该地址互联调度装置独立地执行一个标记存储体仲裁以调度该多个读地址请求和另一个标记存储体仲裁以调度该多个写地址请求。
11.根据权利要求10所述的多级互联系统,其特征在于,该多个数据存储体中的每一个具有两个子存储体,以及该子存储体并行的提供对应于一个读地址请求的读操作和对应于一个写地址请求的写操作。
12.根据权利要求11所述的多级互联系统,其特征在于,对应于一个读地址请求的读操作的数据返回是有序的。
13.根据权利要求11所述的多级互联系统,其特征在于,对应于一个读地址请求的读操作的数据返回是无序的。
14.根据权利要求10所述的多级互联系统,其特征在于,该多级互联系统进一步包括:
仲裁器设备,仲裁多个输入的地址请求以输出由该地址互联调度装置调度的该多个地址请求,其中该仲裁器设备包括:
多个仲裁模块,该多个仲裁模块中的每一个具有多个输入端口,以及该多个仲裁模块中的每一个包括:
多个地址队列,包括读地址队列和写地址队列;以及
多个仲裁器,该多个仲裁器包括:
读仲裁器,仲裁并存储每一个输入读地址请求至该读地址队列;以及
写仲裁器,仲裁并存储每一个输入写地址请求至该写地址队列。
15.根据权利要求14所述的多级互联系统,其特征在于,该多个地址队列中的至少一个包括:
多个队列,分别对应于该多个数据存储体,其中该多个队列中的每一个仅存储相同数据存储体的数据存取的多个地址请求。
16.根据权利要求14所述的多级互联系统,其特征在于,对于该多个地址队列中的至少一个,对应的仲裁器进一步分别保持对应于该多个数据存储体的多个链表,以及包括于对应的链表中的多个指针指向在该多个地址队列的至少一个中的相同数据存储体的数据存取的已存储的该多个地址请求。
17.根据权利要求14所述的多级互联系统,其特征在于,其中该读仲裁器进一步检测已接收的读请求的读地址请求和已准许的写请求的写地址请求是否具有相同的地址值;以及当检测到该已接收的读请求的该读地址请求和该已准许的写请求的该写地址请求具有相同的地址值时,该读仲裁器进一步限制由该地址互联调度装置调度的该读地址请求,直到完成服务该准许的写请求的写操作为止。
18.根据权利要求14所述的多级互联系统,其特征在于,该多个仲裁器基于该多个数据存储体的通信量状况和该多个地址队列的存储状况中的至少一个来将该多个输入的地址请求仲裁至该多个地址队列。
19.根据权利要求14所述的多级互联系统,其特征在于,该多个仲裁器中的至少一个分配多个权重值至该多个输入端口,并基于该多个权重值来仲裁在该多个输入端口接收的多个地址请求。
20.一种多级互联方法,用于具有标记存储器和数据存储器的高速缓存系统,其特征在于,该多级互联方法包括:
执行标记存储体仲裁以调度多个地址请求至该标记存储器的多个标记存储体;以及
执行数据存储体仲裁以调度多个数据请求至该数据存储器的多个数据存储体。
CN201480001302.9A 2013-04-30 2014-04-25 多级互联系统及多级互联方法 Active CN104471555B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201361817424P 2013-04-30 2013-04-30
US61/817,424 2013-04-30
US14/254,898 US9535832B2 (en) 2013-04-30 2014-04-17 Multi-hierarchy interconnect system and method for cache system
US14/254,898 2014-04-17
PCT/US2014/035379 WO2014179151A1 (en) 2013-04-30 2014-04-25 Multi-hierarchy interconnect system and method for cache system

Publications (2)

Publication Number Publication Date
CN104471555A true CN104471555A (zh) 2015-03-25
CN104471555B CN104471555B (zh) 2017-05-03

Family

ID=51790309

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201480001302.9A Active CN104471555B (zh) 2013-04-30 2014-04-25 多级互联系统及多级互联方法

Country Status (4)

Country Link
US (1) US9535832B2 (zh)
EP (1) EP2992440B1 (zh)
CN (1) CN104471555B (zh)
WO (1) WO2014179151A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107710220A (zh) * 2015-07-07 2018-02-16 高通股份有限公司 借助于受控制的加密密钥管理隔离软件模块的方法的存储器高速缓存和高速缓存的软件模块标识的安全处理
CN116028388A (zh) * 2023-01-17 2023-04-28 摩尔线程智能科技(北京)有限责任公司 高速缓存方法、装置、电子设备、存储介质和程序产品

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10353747B2 (en) * 2015-07-13 2019-07-16 Futurewei Technologies, Inc. Shared memory controller and method of using same
US20170017419A1 (en) * 2015-07-15 2017-01-19 Innovium, Inc. System And Method For Enabling High Read Rates To Data Element Lists
US20170017420A1 (en) * 2015-07-15 2017-01-19 Innovium, Inc. System And Method For Enabling High Read Rates To Data Element Lists
US10705987B2 (en) 2016-05-12 2020-07-07 Lg Electronics Inc. Autonomous prefetch engine
US9965211B2 (en) * 2016-09-08 2018-05-08 Cisco Technology, Inc. Dynamic packet buffers with consolidation of low utilized memory banks
US10572389B2 (en) * 2017-12-12 2020-02-25 Advanced Micro Devices, Inc. Cache control aware memory controller
US10896141B2 (en) 2019-03-26 2021-01-19 Intel Corporation Gather-scatter cache architecture having plurality of tag and data banks and arbiter for single program multiple data (SPMD) processor
KR20210046348A (ko) * 2019-10-18 2021-04-28 삼성전자주식회사 복수의 프로세서들에 유연하게 메모리를 할당하기 위한 메모리 시스템 및 그것의 동작 방법
KR102456176B1 (ko) * 2020-05-21 2022-10-19 에스케이하이닉스 주식회사 메모리 컨트롤러 및 그 동작 방법
US11573891B2 (en) 2019-11-25 2023-02-07 SK Hynix Inc. Memory controller for scheduling commands based on response for receiving write command, storage device including the memory controller, and operating method of the memory controller and the storage device

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4839801A (en) * 1986-11-03 1989-06-13 Saxpy Computer Corporation Architecture for block processing computer system
US6192451B1 (en) 1998-02-17 2001-02-20 International Business Machines Corporation Cache coherency protocol for a data processing system including a multi-level memory hierarchy
US7814280B2 (en) 2005-01-12 2010-10-12 Fulcrum Microsystems Inc. Shared-memory switch fabric architecture
US7698498B2 (en) 2005-12-29 2010-04-13 Intel Corporation Memory controller with bank sorting and scheduling
US7856532B2 (en) * 2006-11-03 2010-12-21 Arm Limited Cache logic, data processing apparatus including cache logic, and a method of operating cache logic
US20080162852A1 (en) 2006-12-28 2008-07-03 Surya Kareenahalli Tier-based memory read/write micro-command scheduler
US7793038B2 (en) 2007-06-26 2010-09-07 International Business Machines Corporation System and method for programmable bank selection for banked memory subsystems
US20100169578A1 (en) 2008-12-31 2010-07-01 Texas Instruments Incorporated Cache tag memory
US9430410B2 (en) * 2012-07-30 2016-08-30 Soft Machines, Inc. Systems and methods for supporting a plurality of load accesses of a cache in a single cycle
CN103257946A (zh) 2013-05-24 2013-08-21 浪潮电子信息产业股份有限公司 一种紧耦合多控存储系统控制器之间的高速互联方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107710220A (zh) * 2015-07-07 2018-02-16 高通股份有限公司 借助于受控制的加密密钥管理隔离软件模块的方法的存储器高速缓存和高速缓存的软件模块标识的安全处理
CN107710220B (zh) * 2015-07-07 2021-03-16 高通股份有限公司 存储器高速缓存和高速缓存的软件模块标识的安全处理
CN116028388A (zh) * 2023-01-17 2023-04-28 摩尔线程智能科技(北京)有限责任公司 高速缓存方法、装置、电子设备、存储介质和程序产品
CN116028388B (zh) * 2023-01-17 2023-12-12 摩尔线程智能科技(北京)有限责任公司 高速缓存方法、装置、电子设备、存储介质和程序产品

Also Published As

Publication number Publication date
EP2992440A1 (en) 2016-03-09
US20140325153A1 (en) 2014-10-30
EP2992440A4 (en) 2016-12-07
EP2992440B1 (en) 2018-05-30
WO2014179151A1 (en) 2014-11-06
US9535832B2 (en) 2017-01-03
CN104471555B (zh) 2017-05-03

Similar Documents

Publication Publication Date Title
CN104471555A (zh) 用于高速缓存系统的多级互联系统及多级互联方法
CN100595720C (zh) 用于基于集线器的存储系统中直接存储器访问的设备和方法
US8214845B2 (en) Context switching in a network on chip by thread saving and restoring pointers to memory arrays containing valid message data
US7574573B2 (en) Reactive placement controller for interfacing with banked memory storage
US11831565B2 (en) Method for maintaining cache consistency during reordering
CN113853593A (zh) 支持清空写入未命中条目的受害者高速缓存
CN112088368B (zh) 动态的每存储体和全存储体刷新
CN103647807A (zh) 一种信息缓存方法、装置和通信设备
JP4621604B2 (ja) バス装置、バスシステムおよび情報転送方法
US8601191B2 (en) Bus system and deadlock avoidance circuit thereof
CN101310339A (zh) 具有多个内部数据总线和存储器库交错的存储器装置和方法
US20230101873A1 (en) Memory module with reduced read/write turnaround overhead
US7644221B1 (en) System interface unit
US7454580B2 (en) Data processing system, processor and method of data processing that reduce store queue entry utilization for synchronizing operations
CN102331922B (zh) 运算装置、高速缓存装置及其控制方法
US8464005B2 (en) Accessing common registers in a multi-core processor
US7610458B2 (en) Data processing system, processor and method of data processing that support memory access according to diverse memory models
CN100557584C (zh) 用于对网络和存储器进行耦合的存储器控制器和方法
US20160342541A1 (en) Information processing apparatus, memory controller, and memory control method
US8533368B2 (en) Buffering device and buffering method
US20130054902A1 (en) Accelerating blocking memory operations
US11847464B2 (en) Variable pipeline length in a barrel-multithreaded processor
CN1337625A (zh) 温备用双工设备及其操作方法
US7050059B2 (en) Method for a graphics chip to access data stored in a system memory of a computer device
CN105302745B (zh) 高速缓冲存储器及其应用方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant