CN105095110A - 可融合可重构缓存架构 - Google Patents

可融合可重构缓存架构 Download PDF

Info

Publication number
CN105095110A
CN105095110A CN201510083708.2A CN201510083708A CN105095110A CN 105095110 A CN105095110 A CN 105095110A CN 201510083708 A CN201510083708 A CN 201510083708A CN 105095110 A CN105095110 A CN 105095110A
Authority
CN
China
Prior art keywords
switch
kernel
cache
buffer memory
network
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
CN201510083708.2A
Other languages
English (en)
Other versions
CN105095110B (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.)
Huawei Technologies Co Ltd
National University of Singapore
Original Assignee
Huawei Technologies Co Ltd
National University of Singapore
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 Huawei Technologies Co Ltd, National University of Singapore filed Critical Huawei Technologies Co Ltd
Publication of CN105095110A publication Critical patent/CN105095110A/zh
Application granted granted Critical
Publication of CN105095110B publication Critical patent/CN105095110B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0813Multiuser, multiprocessor or multiprocessing cache systems with a network or matrix configuration
    • 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/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • 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/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/084Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
    • 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/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0842Multiuser, multiprocessor or multiprocessing cache systems for multiprocessing or multitasking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1021Hit rate improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1024Latency reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1028Power efficiency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/601Reconfiguration of cache memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/601Reconfiguration of cache memory
    • G06F2212/6012Reconfiguration of cache memory of operating mode, e.g. cache mode or local memory mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/6042Allocation of cache space to multiple users or processors
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

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)
  • Multi Processors (AREA)

Abstract

本发明提供了一种可重构缓存架构。由于芯片上组件的密度不断提高,在处理器的设计上,处理内核的数量和复杂度也会增加。为了利用提高了的处理能力,很多应用程序采用指令级并行。所述可重构缓存架构为相关联的多核处理器提供了一个高速缓冲存储器,所述高速缓冲存储器能配置在独占模式和融合模式下。在融合模式下,所述多核处理器的单个内核能够写入和读取来自具有更强地址路由控制能力的高速缓冲存储器的某些缓存库的数据。所述缓存架构还能够控制和设置存储大小和高速缓冲存储器本身的关联性。

Description

可融合可重构缓存架构
背景技术
根据摩尔定律,随着片上晶体管密度的提高,设计可靠的、可进行丰富并行操作的多核处理器的能力也在提高。确实,现代多核架构将很多简单的同构核集成于一个通常使用线程级并行(TLP)的片上。然而,虽然可使用TLP,但是很多在典型多核处理器上运行的应用程序有相当多的顺序代码段。根据阿姆达尔定律,由于这些顺序代码段不能在多核处理器的内核之间使用指令级并行(ILP),这些应用程序在多核处理器上运行时没有得到很好的加速。
为了解决上述问题,例如以下文章所公开的一些自适应多核架构被推荐用于解决简单核的上述局限:MihaiPricopi和TulikaMitra:Bahurupi:一种多态异构多核架构,美国计算机协会结构与代码优化汇刊(ACMTACO),8(4):22:1–22:21,2012;EnginIpek等:核融合:片上多处理器支持软件多样性,计算机体系结构国际会议(ISCA),第186–197页,2007;DavidTarjan等:联合:重新利用标量内核以解决无序指令问题,设计自动化会议(DAC),第772–775页,2008;ChangkyuKim等:可组合的轻量级处理器,微处理机与微型计算机杂志(MICRO),第381–394页,2007。大体而言,上述引用文献中讨论的多核架构用简单核创建了虚拟复杂核,所述虚拟复杂核能够通过使用ILP来加速由多核处理器执行的应用程序的顺序段。当处理器负载中同时存在顺序和并行应用程序时,所述自适应多核处理器的性能比传统的同构多核处理器及非对称多核处理器强多了。
上述引用文献中所讨论的推荐的自适应多核处理器设计主要集中在所述处理器的内部微架构、所述处理器的编译程序和编程模型。因此,所述多核处理器设计忽略了或者说简化了有关所述多核处理器的存储层次的假设。例如,上述引用文献的一个共同的假设就是一级数据指令缓存必须支持可重构性。但是,上述引用文献都没有提供自适应多核处理器可重构缓存架构的解决方案。
发明内容
一方面,本发明实施例提供了一种可重构缓存架构,包括:包含多个内核的多核处理器;多个高速缓冲存储器,用于存储由所述多个内核中的至少一个内核处理的数据,并根据请求将所存储的数据提供给所述多个内核中的至少一个内核;互联网络,用于连接所述多个内核中的至少一个内核和所述多个高速缓冲存储器中的至少一个高速缓冲存储器,其中,所述互联网络包含一个组合路由网,所述多个内核中的至少一个内核处理的数据根据输入至所述互联网络的地址映射,通过所述组合路由网进行路由。
在一个实施例中,所述组合路由网包含网络重构输入,所述网络重构输入包括至少一个交换层,所述至少一个交换层包含多个可配置开关,所述可配置开关用于在双向模式(总是向上模式和总是向下模式)中的一个模式下运行。
在另一个实施例中,所述组合路由网用于在所述双向模式下运行,所述地址映射确定由所述多个内核中的至少一个内核处理的数据是在第一方向上路由还是在第二方向上路由。
在另一个实施例中,根据由所述多个内核中的至少一个内核处理的数据是在第一方向上路由还是在第二方向上路由,将所述数据存储于所述多个高速缓冲存储器中的至少一个高速缓冲存储器的单个缓存库内。
在一个实施例中,所述互联网络还包括仲裁程序,所述仲裁程序插入于所述组合路由网和所述多个高速缓冲存储器中的至少一个高速缓冲存储器之间。
在另一个实施例中,当多个内核同时将数据写入到所述单个缓存库时,所述仲裁程序用于判断哪些数据被实际写入到所述单个缓存库。
在又一个实施例中,所述可重构缓存架构还包括:直连网络,将所述多个内核中的一个内核连接到所述多个高速缓冲存储器中的一个高速缓冲存储器;及,系统重构输入,用于为所述多个内核中的每个内核选择互联网络和直连网络中的一个,以便由所述多个内核中的至少一个内核处理的数据根据所述系统重构输入状态,通过所述互联网络和所述直连网络中的一个进行路由。
在另一个实施例中,所述可重构缓存架构还包括单个的复用器,所述单个的复用器插入在所述复用器第一侧的每个内核和所述复用器第二侧的互联网络和直连网络之间。
在又一个实施例中,所述复用器用于根据系统重构输入状态选择直连网络和互联网络中的一个。
在一个实施例中,所述多个高速缓冲存储器的每个单个高速缓冲存储器包含多个缓存库,所述多个缓存库呈H桥型与第一开关、第二开关、第三开关及第四开关相连,所述开关连接直连网络和所述多个缓存库。
在另一个实施例中,所述可重构缓存架构还包括一个缓存重构输入,用于根据所述系统重构输入选择了直连网络还是互联网络,打开或关闭第一开关、第二开关、第三开关和第四开关。
在又一个实施例中,如果所述系统重构输入设置为选择直连网络,那么所述缓存重构输入关闭第一开关、第二开关、第三开关和第四开关;如果所述系统重构输入设置为选择互联网络,那么所述缓存重构输入打开第一开关、第二开关、第三开关和第四开关。
另一方面,本发明实施例提供了一种设置高速缓冲存储器请求路由的系统,以在多核处理器中实现指令级并行,所述系统包括:所述多核处理器的多个内核,用于对由所述多核处理器处理的数据进行指令级并行处理;多个高速缓冲存储器,用于存储由所述多核处理器处理的数据,并按请求将所存储的数据提供给所述多个内核中的至少一个内核;直连网络,将所述多个内核中的一个内核连接到所述多个高速缓冲存储器中的一个高速缓冲存储器;及,互联网络,用于连接所述多个内核中的至少一个内核和所述多个高速缓冲存储器中的至少一个高速缓冲存储器,其中,所述互联网络包括组合路由网,由所述多核处理器处理的数据根据输入至所述互联网络的地址映射,通过所述组合路由网进行路由。
在一个实施例中,所述设置高速缓冲存储器的系统还包括系统重构输入,所述系统重构输入将由所述多核处理器处理的数据设置为通过直连网络和互联网络中的一个进行路由。
在另一个实施例中,所述组合路由网包括:至少一个交换层,每个交换层包含多个可配置开关,所述多个可配置开关用于双向模式中的一个模式,即总是向上模式和总是向下模式;及,网络重构输入,用于输入地址映射,以便由所述多核处理器处理的数据根据地址映射通过所述至少一个交换层进行路由、并被写入至所述多个高速缓冲存储器中的至少一个高速缓冲存储器的指定缓存库。
在又一个实施例中,所述多个高速缓冲存储器中的每个单个高速缓冲存储器包括多个缓存库,所述多个缓存库呈H桥型和至少一个开关相连,所述开关连接直连网络和所述多个缓存库。
在再一个实施例中,所述多个高速缓冲存储器中的每个单个高速缓冲存储器包括:缓存重构输入,用于根据系统重构输入选择了直连网络还是互联网络,打开或关闭所述至少一个开关,其中,如果系统重构输入设置为选择直连网络,那么所述缓存重构输入关闭所述至少一个开关;如果系统重构输入设置为选择互联网络,那么所述缓存重构输入打开所述至少一个开关。
另一方面,本发明实施例提供了一种互联设备,用于以通信的方式将一个多核处理器耦合到多个高速缓冲存储器,其中,每个高速缓冲存储器包括多个缓存库;所述互联设备包括:包含多个交换层的日志网络层,其中,第一交换层包含多个开关,每一个随后的交换层包含的开关数是前一个交换层的开关数的两倍;网络重构寄存器,用于存储地址映射,以便通过所述日志网络层对所述多核处理器处理的数据进行路由;及,仲裁层,将所述日志网络层耦合至所述多个缓存库。
在一个实施例中,所述地址映射包含一个二进制数,所述二进制数的每一位对应所述多个交换层中的单个交换层,所述单个交换层的每个开关用于在第一方向和第二方向中的一个方向上,基于所述单个交换层对应的二进制数位的值,将所述多核处理器处理的数据路由至后一个交换层。
在另一个实施例中,所述仲裁层包括:对应所述多个缓存库中的各个缓存库的单个仲裁节点,各个所述单个仲裁节点从所述多核处理器的每个内核接收输入,向所述缓存库提供输出。
在另一个实施例中,所述单个仲裁节点用于在所述多核处理器中多于一个内核同时试图将数据写入所述缓存库的情况下,判断被写入的是什么数据。
附图说明
图1是根据本发明实施例的自适应多核处理器的缓存架构示意图。
图2是图1中的一个互联网络示意图。
图3是图2中的互联网络的地址映射示意图。
图4是根据示例性实施例的图2中的互联网络示意图。
图5是根据示例性实施例的图2中的互联网络示意图。
图6是根据本发明实施例的从互联网络发送至多核处理器的一个内核的重试消息示意图。
图7是根据本发明实施例的从一个内核发送至一个缓存库的确认消息示意图。
具体实施方式
本发明实施例提供了一种可融合可重构的自适应多核处理器缓存架构。所述可融合可重构的缓存架构能够在至少两种操作模式间进行切换。所述两种模式为独占模式,在所述多核处理器作为传统多核处理器时启用,和融合模式,在所述多核处理器作为自适应多核处理器时启用。在融合模式下,所述自适应多核处理器能够设置共享缓存的大小和将所述多核处理器的每个内核的共享缓存相关联。这个功能在能量消耗、缓存未命中率和读/写性能方面实现了最佳效率。
参见图1,图1示出了一种可重构缓存架构100,在所述可重构缓存架构100中,多核处理器102可在传统模式或自适应/融合模式下操作。所述多核处理器102包含多个处理内核,如C0-C3104、106、108和110所示。此外,图1所示的实施例仅显示了4个内核,但是在其它的实施例中,所述多核处理器102可能包含更多或更少的内核。
缓存架构100还包括多个缓存模块或高速缓冲存储器112,如M0-M3114、116、118和120所示。在图1所示的实施例中,高速缓冲存储器114、116、118和120对应内核104、106、108和110。进一步地,内核104、106、108和110中的每一个通过直连网络122分别直接连接至对应的高速缓冲存储器114、116、118和120。直连网络122包含分别连接至高速缓冲存储器114、116、118和120的直接连接124、126、128和130。
所示的每一个内核104、106、108和110通过互联网络132进一步连接至高速缓冲存储器112。在图1所示的实施例中,所示出的互联网络132将内核104、106、108和110仅连接至高速缓冲存储器118和120。然而,在其它实施例中,可能包含更多或更少的单个高速缓冲存储器,例如,可以包括存储器114和116。
根据交换网络134的状态,所述多核处理器102通过所述直连网络122或者所述互联网络132和高速缓冲存储器112进行通信,在图1所示的实施例中,所述交换网络134是一个由多个以复用器136、138、140和142的形式出现的开关组成的网络。所述复用器136、138、140和142的状态由系统重构输入144控制。根据所述系统重构输入144,所述复用器136、138、140和142通过所述直连网络122或者所述互联网络132路由数据。
当所述交换网络134设置为所述多核处理器102通过所述直连网络122写入/读取数据时,所述缓存架构100设置为在独占模式下运行。而当所述交换网络134设置为所述多核处理器102通过所述互联网络132写入/读取数据时,所述缓存架构100设置为在融合模式下运行。相应地,所述系统重构输入144控制所述缓存架构100是在独占模式还是融合模式下运行。就这一点而言,所述系统重构输入144控制缓存架构100的第一设置级别。
在图1所示的实施例中,所述缓存架构100包含两个更深的设置级别。第二设置级别由网络重构输入146控制。所述第二设置级别控制所述互联网络132的重构过程,以便当所述多核处理器在融合模式下运行时,写入/读取的数据路由至/自高速缓冲存储器118或120中的某一特定的缓存库。
此外,本发明附图中所示的互联网络132仅仅显示了从所述多核处理器102到所述高速缓冲存储器112的连接。简洁起见,在数据读取过程中,数据从所述高速缓冲存储器112返回至所述多核处理器102的对应互联网络没有示意出来。由于数据读取过程和写入过程相似,本发明没有阐述数据读取过程,但是,本发明对数据写入过程的描述足以让人理解数据读取过程。
第三设置级别由缓存重构输入148控制。所述输入控制一个单个高速缓冲存储器中的一组开关,图1中的高速缓冲存储器118和120详细图示了所述开关。高速缓冲存储器118和120的详细视图示出了8个呈H桥型相连的缓存库B0-B7150、152、154、156、158、160、162和164以及B0a-B7a150a、152a、154a、156a、158a、160a、162a和164a。所述H桥型包括高速缓冲存储器118中的166、168、170和172四个开关和高速缓冲存储器120中的190、192、194和196四个开关。当166、168、170、172、190、192、194和196这8个开关关闭时,它们将缓存库B0-B7150、152、154、156、158、160、162和164连接至直连网络128和130,从而将高速缓冲存储器118和120设置为在独占模式下运行。当166、168、170、172、190、192、194和196这8个开关打开时,它们断开缓存库B0-B7150、152、154、156、158、160、162和164和直连网络128和130的连接,从而将高速缓冲存储器118和120设置为通过数据连接174、176、178、180、182、184、186和188进行通信。在这种开关设置方式下,所述缓存重构输入148将所述高速缓冲存储器118和120设置为在融合模式下运行。
所述高速缓冲存储器118和120的详细视图还包括额外开关,所述额外开关增大了高速缓冲存储器的容量、增强了被访问缓存库的关联性。所述额外开关为高速缓冲存储器118中的开关198、101、103和105以及高速缓冲存储器120中的开关107、109、111和113。这些开关可通过所述缓存重构输入148进行统一控制或分开控制。当这些开关关闭时,特定缓存库可用的高速缓冲存储容量将增大一倍。例如,当开关198关闭时,缓存库可用的高速缓冲存储容量为B0150和B0a150a。该设置不要求改变B0150的缓存线的数量;因此,地址映射保持不变,所述缓存架构100不需要将缓存库B0150的内容写入更低级别的缓存。此外,当高速缓冲存储器118的额外开关198、101、103和105以及高速缓冲存储器120的额外开关107、109、111和113打开时,B0a-B7a150a、152a、154a、156a、158a、160a、162a和164a下电。因此,所述缓存架构100允许自适应多核接入到多种大小和关联性的缓存。
图2是图1中的互联网络的详细示意图。如图所示,所述互联网络132被设置在所述多核处理器102和所述高速缓冲存储器118之间。在所示的实施例中,所述互联网络132包括一个以日志网络202的形式出现的组合路由网。日志网络202包括多个位于交换层的开关S。在所示的实施例中,所述日志网络202包含三个交换层204、206和208。交换层204是第一交换层,交换层206是第二交换层,交换层208是第三交换层。交换层的开关数从第一交换层204到第三交换层208呈指数增长。在所示的实施例中,后一个交换层的开关数是前一个交换层开关数的两倍,如图所示,第一交换层204有4个开关,第二交换层206有8个开关,第三交换层208有16个开关。
此外,第一交换层204的开关的数量取决于所述互联网络132要服务的内核的数量。如图2所示,所述多核处理器102包含4个内核104、106、108和110,对应第一交换层204的四个开关。相应地,和一个特定的互联网络132相关联的多核处理器102中更多或更少的内核在第一交换层204产生更多或更少的开关,使得随后的交换层产生更多或更少的开关或者没有后续的交换层,这取决于内核和相关联的缓存库的数量。
所述日志网络202还包括重构寄存器210,所述重构寄存器210包含内存地址映射,所述内存地址映射用于控制数据怎样通过交换层204、206和208进行路由,在某些实施例中,还用于控制所述多核处理器102(见图1)的中央处理器(未示出)怎样发送数据。在其它实施例中,所述多核处理器102的内核104、106、108和110生成所述内存地址映射。
图3示出了内存地址映射300,它包含至少四个字段,包括标记302、组索引304、库编号306和字节偏移308。所述字节偏移308用于从一个特定缓存库的150、152、154、156、158、160、162或164缓存线上选择一个字节,所述组索引304用于选择一个库的缓存线。所述标记302、组索引304和字节偏移308是主要用于编目内存地址的所述地址映射300中的传统字段,而库编号306是一个用于指导数据通过所述交换层204、206和208(见图2)的可变字段。就这点而言,所述库编号306提供了通过所述日志网络202的一种交叉存取方式。相应地,所述库编号306根据所述网络重构输入146(见图1)在长度上有所不同。所述网络重构输入146能够通过增加或减少所述库编号306的位长来设置所使用的缓存库的数量。当所述库编号306的位长增加时,所使用的缓存库的数量也增加,而当所述库编号306的位长减少时,所使用的缓存库的数量也减少。
此外,如图2所示的所述互联网络132的一个实施例中的所述地址映射300的字段的典型大小为:在一个64字节的缓存线中,字节偏移的长度为6比特;用于通过所述互联网络132访问缓存库的库编号306的最大长度为3比特;用于访问一个4千比特(KB)、8路组相联缓存库的高速缓冲存储器的组索引304的长度为3比特。根据所使用的缓存架构的具体实施例,所述地址映射300的字段的值可能会变。
再回到图2,所述互联网络132还包括仲裁层212。在所示的实施例中,所述仲裁层212包括和所述高速缓冲存储器118中的每个缓存库B0-B7一一对应的仲裁节点A0-A7;但是,在其它实施例中,单个的仲裁节点可能对应更多或更少的缓存库。在图2中,仲裁节点A0-A7包括四个分别来自所述多核处理器102的每个内核C0-C3的输入和一个发送至相应缓存库B0-B7的输出。仲裁节点A0-A7解决多个内核C0-C3试图访问同一个缓存库时出现的缓存库B0-B7争用问题。所述仲裁节点通过允许所述四个输入中的一个输入并通过引入一个额外循环在访问所述缓存库时增加额外程序,来解决争用。
关于所述地址映射和通过所述日志网络202的内存请求路由,所示的所述缓存架构100(见图1)的互联网络132允许所述多核处理器102的多个内核通过联合,以最小的面积、能量和性能开销共享和独占模式下的内核所使用的相同大小的缓存。如图2所示,所示的缓存架构100的互联网络132用于将所述多核处理器102的多个内核连接至不同数量的高速缓冲存储库,例如高速缓冲存储器118和120的缓存库B0-B7。在所示的图2实施例中,所述多核处理器112的四个内核104、106、108和110连接至两个包含八个缓存库B0-B7150、152、154、156、158、160、162和164的高速缓冲存储器118和120。
在图2中,每一交换层204、206和208的每个开关包含一个单输入和两个输出。待写入至高速缓冲存储器118的数据通过单输入连接发送至所述开关,并从所述两个输出的第一方向或第二方向通过所述网络进行路由。为了便于描述,所述第一方向输出代表如图2所示的向上的输出连接并称为上方向,所述第二方向代表如图2所示的向下的输出连接并称为下方向。进一步地,所述库编号306(见图3)的每一位对应交换层204、206或208,并充当该层的控制比特。例如,在一个实施例中,所述库编号306的长度为3比特,其中,最高有效位对应第一交换层204,第二最高有效位对应第二交换层206,最低有效位对应第三交换层208。由于数据通过不同交换层的不同开关进行路由,所述控制比特的值决定所述数据是在上方向还是下方向(第一方向还是第二方向)上通过开关进行路由。在一个实施例中,如果所述控制比特的值为0,那么所述数据在上方向上路由,如果所述控制比特的值为1或除0之外的任何值,那么所述数据在下方向上路由。为了简化进一步的讨论,所述实施例中的路由方式称为传统数据路由。在其它实施例中,方向路由刚好相反,所述控制比特的值为1,在上方向上进行数据路由,所述控制比特的值为0,则在下方向上进行数据路由。
此外,在某些实施例中,每一高速缓冲存储器M0-M3114、116、118和120(见图1)有两个互联网络132。一个互联网络132连接到所述多核处理器的102的每个内核的写入端口、用于将数据写入至所述高速缓冲存储器(见图1和图2),另一个互联网络(未示出)用于将所述高速缓冲存储器的数据读取至所述多核处理器102的每个内核的读取端口。至于所述多核处理器102的内核的读取端口的互联网络,所述互联网络为所述互联网络132的镜像,执行与其相似的操作。因此,出于简洁目的,所述读取互联网络没有在图中示出。此外,关于与读取端口的所述互联网络相关联的所述仲裁层,在极少数情况下,多个缓存库的读取操作同时回应所述多核处理器102的一个内核,在这个情况下,最后一个交换层在进入所述多核处理器102的内核的读取端口前会作出一个仲裁决定,所述仲裁决定随机选择一个读取请求并将其发送至所述多核处理器的内核的读取端口,被拒绝的读取数据请求设定为在所述关联缓存库的一个缓存库级别的输出队列排队等候处理。
图4示出了数据通过所述互联网络132进行路由的实施例示例。在图4的示例中,一个来自内核C0104的示例性内存地址映射402关联到将数据从所述内核104的写入端口路由至缓存库B0150。如图所示,所述库编号306的值为000,所述值对应于有三个交换层204、206和208的互联网络132,所述库编号306每一位对应一个交换层,对应的所述互联网络132设置为在上方向上通过每一交换层对数据进行路由,使其到达所述仲裁层212的仲裁节点A0处。假设其它数据没有在同一时间被分配或写入至缓存库B0150,那么一旦所述数据到达所述仲裁节点A0,所述仲裁节点A0就会将待写入的所述数据传送至所述缓存库B0150。如果数据出现在其它终端中的一个终端上,所述终端作为一个输入与仲裁节点A0相连,那么所述仲裁层决定传送什么数据至所述缓存库B0150。
如上所述,根据运行在所述多核处理器102的一个内核上的一个特定的应用程序的期望的缓存库数量,可通过调整所述库编号306来设置或重构所述互联网络132。在图4的示例中,内核C0104确定它需要访问8个缓存库B0-B7。因此,所述库编号306对应一个能映射所述8个独立缓存库B0-B7的二进制数字。如果C0104需要访问更多或更少的缓存库,那么所述库编号306可被调节至包含更多或更少的数位以增加或减少交换层的数量。进一步地,在一个网络重构过程中,当所述地址映射发生改变以创造不同的内核联合方式时,在某些实施例中,必须将所述联合的内核所对应的共享缓存写入至更低级别的缓存。
在一个实施例中,所述互联网络132中的每个开关S均包含两个用于设置所述开关的状态的控制比特,所述开关由所述网络重构输入146(见图1)进行设置。这两个控制比特用于将所述开关设置为三个状态即第一状态、第二状态和第三状态中的一个状态。所述第一状态是正常模式,这意味着开关根据如上所述的库编号306的相关数位进行操作。所述第二状态是总是向上状态,它将开关设置为总是在上方向上路由通过开关的数据。所述第三状态时总是向下状态,它将开关设置为总是在下方向上路由通过开关的数据。在一个实施例中,第一状态中的开关的所述两个控制比特可以是00,第二状态中的所述两个控制比特可以是01,第三状态中的两个比特可以是10。
因此,开关的状态取决于所述库编号306(见图3)的位数。如果一个内核,如图4中的内核C0104,需要访问如图所示的所有8个缓存库B0-B7,那么所示的所有三个交换层上的开关须被设置为正常模式,以便根据所述库编号306中的每一位的值对数据进行路由。但是,如果所述库编号306的宽度小于3位,那么为了减少交换层的数量,须根据所期望的缓存库B0-B7,将所述开关设置为在总是向上模式或总是向下模式下运行。
图5示出了一个例子,其中,内核C0104只需访问缓存库B0150和B1152。以下通过内存地址映射502进行说明,所述内存地址映射502包含一个长度仅仅为一个数位的库编号306。所述单个数位代表第三交换层208。在这个示例的实施例中,前两个交换层204和206设置为在总是向上的方向上路由数据。因此,通过将这两层上的每个开关的控制比特设为01来将这些开关设为总是向上状态或者说第二状态。这样,所述互联网络132可以有多种不同的设置,实现不同数量的缓存库B0-B7。这个方案能实现一个灵活的、可重构的缓存架构。
进一步地,在图5所示的实施例中,所述库编号的值为0。因此,数据将被写入至缓存库B0150。但是,所述值也可能是1,那么,所述数据可能被写入至缓存库B1152。
图6和图7分别示出了融合模式下的缓存架构100(见图1)的重试机制和确认机制。具体地,图6示出了仲裁层212作出的仲裁决定。在图6所示的例子中,仲裁节点A0同时收到多个高速缓冲存储器写入请求。然而,所述仲裁节点A0一次只能接受一个这样的请求。相应地,一个写入请求被接受,其它的写入请求被拒绝。然后所述仲裁节点A0发回一个重试请求602给发送写入请求遭到拒绝的内核,如图6所示的内核C0104。
图7示出了所述缓存架构100(见图1)的一个确认信号。在所示例子中,与一特定单个内核C0-C4相关联的第一交换层204(见图2)中的一个特定开关将一个确认信号702发送给一个特定的单个缓存库B0-B7以通知其内存访问事务已经完成,这样,所述缓存库B0-B7能将未完成事务记录移除。
本发明所引用的所有参考,包含出版物、专利申请和专利均通过引用结合于本发明中,等同于每个参考的全部内容都单独地、具体地通过引用结合于本发明中。
除非另有说明或者在上下文中明显矛盾,描述本发明的上下文(尤其是随后的权利要求上下文)中所使用的“一个”、“所述”、“至少一个”和类似的所指应理解为包括单数和复数。除非另有说明或者在上下文中明显矛盾,“至少一个”后跟一个或多个项目(例如“至少一个A和B”)应理解为从后面所跟的项目中选择一个(A或B)或者从所跟的项目中选择任意两个或多个项目(A和B)。若无特殊说明,“包含”、“有”、“包括”和“含有”应理解为开放式的表达(即“包括但不限于”)。本发明所表达的值的范围仅为一种将范围内每一单独的值单独表达出来所采用的便捷方法,若无特殊说明,每一单独的值包括在此范围内,等同于它被单独表达出来。除非另有说明或者在上下文中明显矛盾,本发明所描述的所有方法能以任何合适的顺序执行。若无特殊说明,本发明所使用的任何以及全部例子或者示例性语言(例如“例如”)仅用于更好地解释本发明而非限制本发明的范围。本发明中的语言不应被理解为和权利要求相违背的元素,这一点对本发明的执行而言非常重要。
本文描述了本发明的首选实施例,包括执行本发明的专利发明人所知悉的最佳模式。本领域的普通技术人员在读完上文的描述后可清楚地了解所述首选实施例的变化形式。本专利的发明人期望本领域的技术人员能适当地使用所述变化形式的实施例,而不是仅仅运用本发明具体描述的实施例。相应地,本发明包含所附权利要求所述的主题的修订形式和等同物,这在适用法律的允许范围之内。此外,除非另有说明或者在上下文中明显矛盾,以可能的变化形式出现的上述元素的任何组合都包含在本发明的发明范围之内。

Claims (21)

1.一种可重构缓存架构,其特征在于,包括:
包含多个内核的多核处理器;
多个高速缓冲存储器,用于存储由所述多个内核中的至少一个内核处理的数据,并根据请求将存储的数据提供给所述多个内核中的至少一个内核;和
互联网络,用于将所述多个内核中的至少一个内核连接至所述多个高速缓冲存储器中的至少一个高速缓冲存储器;
其中,所述互联网络包括组合路由网;由所述多个内核中的至少一个内核处理的数据根据输入到所述互联网络的地址映射,通过所述组合路由网进行路由。
2.根据权利要求1所述的可重构缓存架构,其特征在于,所述组合路由网包括网络重构输入和至少一个交换层,所述至少一个交换层包含多个可配置开关,所述可配置开关用于双向模式(总是向上模式和总是向下模式)中的一个模式下运行。
3.根据权利要求2所述的可重构缓存架构,其特征在于,所述组合路由网用于在所述双向模式下运行,所述地址映射确定由所述多个内核中的至少一个内核处理的数据是在第一方向上路由还是在第二方向上路由。
4.根据权利要求3所述的可重构缓存架构,其特征在于,根据由所述多个内核中的至少一个内核处理的数据是在第一方向上路由还是在第二方向上路由,将所述数据存储于所述多个高速缓冲存储器中的至少一个高速缓冲存储器的单个缓存库内。
5.根据权利要求4所述的可重构缓存架构,其特征在于,所述互联网络还包括仲裁程序,所述仲裁程序插入于所述组合路由网和所述多个高速缓冲存储器中的至少一个高速缓冲存储器之间。
6.根据权利要求5所述的可重构缓存架构,其特征在于,当多个内核同时将数据写入到所述单个缓存库时,所述仲裁程序用于判断哪些数据被实际写入到所述单个缓存库。
7.根据权利要求1所述的可重构缓存架构,其特征在于,还包括:
直连网络,用于将所述多个内核中的一个内核连接至所述多个高速缓冲存储器中的一个高速缓冲存储器;和
系统重构输入,用于为所述多个内核中的每个内核选择互联网络和直连网络中的一个网络,以便由所述多个内核中的至少一个内核处理的数据根据所述系统重构输入状态,通过所述互联网络和所述直连网络中的一个网络进行路由。
8.根据权利要求7所述的可重构缓存架构,其特征在于,还包括单个的复用器,所述单个的复用器插入在所述复用器第一侧的每个内核和所述复用器第二侧的互联网络和直连网络之间。
9.根据权利要求8所述的可重构缓存架构,其特征在于,所述复用器用于根据系统重构输入状态选择所述直连网络和所述互联网络中的一个网络。
10.根据权利要求9所述的可重构缓存架构,其特征在于,所述多个高速缓冲存储器的每个单个高速缓冲存储器包含多个缓存库,所述多个缓存库呈H桥型与第一开关、第二开关、第三开关及第四开关相连,所述开关连接直连网络和所述多个缓存库。
11.根据权利要求10所述的可重构缓存架构,其特征在于,还包括缓存重构输入,用于根据所述系统重构输入选择了直连网络还是互联网络,打开或关闭所述第一开关、第二开关、第三开关和第四开关。
12.根据权利要求11所述的可重构缓存架构,其特征在于,
当所述系统重构输入设置为选择所述直连网络时,所述缓存重构输入关闭所述第一开关、第二开关、第三开关和第四开关;
当所述系统重构输入设置为选择所述互联网络时,所述缓存重构输入打开所述第一开关、第二开关、第三开关和第四开关。
13.一种设置高速缓冲存储器请求路由的系统,以在多核处理器中实现指令级并行,其特征在于,所述系统包括:
所述多核处理器中的多个内核,所述多个内核用于对由所述多核处理器处理的数据进行指令级并行操作;
多个高速缓冲存储器,所述多个高速缓冲存储器用于存储由所述多核处理器处理的数据,并根据请求将所存储的数据提供给所述多个内核中的至少一个内核;
直连网络,用于将所述多个内核中的一个内核连接至所述多个高速缓冲存储器中的一个高速缓冲存储器;和
互联网络,用于将所述多核内核中的至少一个内核连接至所述多个高速缓冲存储器中的至少一个高速缓冲存储器,其中,所述互联网络包括组合路由网,由所述多核处理器处理的数据根据所述互联网络的地址映射输入,通过所述组合路由网进行路由。
14.根据权利要求13所述的系统,还包括系统重构输入,其特征在于,所述系统重构输入将由所述多核处理器处理的数据设置为通过所述直连网络和所述互联网络中的一个网络进行路由。
15.根据权利要求13所述的系统,其特征在于,所述组合路由网包括:
至少一个交换层,每个交换层包含多个可配置开关,所述可配置开关用于在双向模式(总是向上模式和总是向下模式)中的一个模式下运行;和
网络重构输入,用于输入地址映射,以便由所述多核处理器处理的数据根据所述地址映射,通过所述至少一个交换层进行路由、并被写入至所述多个高速缓冲存储器中的至少一个高速缓冲存储器的一个特定的缓存库。
16.根据权利要求14所述的系统,其特征包括,所述多个高速缓冲存储器中的每个单个高速缓冲存储器包括多个缓存库,所述多个缓存库呈H桥型和至少一个开关相连,所述开关将所述直连网络连接至所述多个缓存库。
17.根据权利要求16所述的系统,其特征在于,所述多个高速缓冲存储器中的每个单个高速缓冲存储器包括:缓存重构输入,用于根据所述系统重构输入选择了直连网络还是互联网络,打开或关闭所述至少一个开关,其中,如果系统重构输入设置为选择所述直连网络,那么所述缓存重构输入关闭所述至少一个开关,如果系统重构输入设置为选择所述互联网络,那么所述缓存重构输入打开所述至少一个开关。
18.一种互联设备,其特征在于,用于以通信的方式将一个多核处理器耦合到多个高速缓冲存储器,其中,每个高速缓冲存储器包含多个缓存库;所述互联设备包括:
包含多个交换层的日志网络层,其中,第一交换层包含多个开关,每一个随后的交换层包含的开关数是前一个交换层的开关数的两倍;
网络重构寄存器,用于存储地址映射,以便通过所述日志网络层对由所述多核处理器处理的数据进行路由;和
仲裁层,将所述日志网络层耦合至所述多个缓存库。
19.根据权利要求18所述的互联设备,其特征在于,所述地址映射包含一个二进制数,所述二进制数的每一位对应所述多个交换层中的单个交换层,所述单个交换层的每个开关用于在第一方向和第二方向中的一个方向上,基于所述单个交换层对应的二进制数位的值,将由所述多核处理器处理的数据路由至后一个交换层。
20.根据权利要求18所述的互联设备,其特征在于,所述仲裁层包括:对应所述多个缓存库中的各个缓存库的单个仲裁节点,各个所述单个仲裁节点从所述多核处理器的每个内核接收输入,向所述缓存库提供输出。
21.根据权利要求20所述的互联设备,其特征在于,所述单个仲裁节点用于在所述多核处理器中多于一个内核同时试图写入数据至所述缓存库的情况下,判断被写入的是什么数据。
CN201510083708.2A 2014-02-18 2015-02-15 可融合可重构缓存架构 Active CN105095110B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/183,238 US9460012B2 (en) 2014-02-18 2014-02-18 Fusible and reconfigurable cache architecture
US14/183,238 2014-02-18

Publications (2)

Publication Number Publication Date
CN105095110A true CN105095110A (zh) 2015-11-25
CN105095110B CN105095110B (zh) 2020-10-23

Family

ID=53798234

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510083708.2A Active CN105095110B (zh) 2014-02-18 2015-02-15 可融合可重构缓存架构

Country Status (2)

Country Link
US (2) US9460012B2 (zh)
CN (1) CN105095110B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111723900A (zh) * 2019-03-18 2020-09-29 北京灵汐科技有限公司 一种基于众核处理器的神经网络的映射方法及计算设备
CN117608864A (zh) * 2024-01-23 2024-02-27 中诚华隆计算机技术有限公司 一种多核缓存一致性方法及系统

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9992070B2 (en) * 2015-12-01 2018-06-05 Honeywell International Inc. Systems and methods for a reconfigurable order-constrained switch network
WO2019028253A1 (en) 2017-08-03 2019-02-07 Next Silicon, Ltd. EXECUTION OPTIMIZATION OF CONFIGURABLE EQUIPMENT
CN117271392A (zh) 2017-08-03 2023-12-22 涅克斯硅利康有限公司 用于缓存一致性的可重构的缓存架构及方法
US10817344B2 (en) 2017-09-13 2020-10-27 Next Silicon Ltd Directed and interconnected grid dataflow architecture
US11269526B2 (en) 2020-04-23 2022-03-08 Next Silicon Ltd Interconnected memory grid with bypassable units

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040205288A1 (en) * 2003-04-14 2004-10-14 Copan Systems, Inc Method and apparatus for storage command and data router
US20060143384A1 (en) * 2004-12-27 2006-06-29 Hughes Christopher J System and method for non-uniform cache in a multi-core processor
CN1842781A (zh) * 2003-07-25 2006-10-04 拉莎微电子有限公司 高级处理器
CN1929026A (zh) * 2005-06-30 2007-03-14 英特尔公司 微型碎片存储器接口
US20080320268A1 (en) * 2007-06-25 2008-12-25 Sonics, Inc. Interconnect implementing internal controls
CN101753388A (zh) * 2008-11-28 2010-06-23 中国科学院微电子研究所 适用于多核处理器片上和片间扩展的路由及接口装置
CN101751280A (zh) * 2008-11-28 2010-06-23 上海芯豪微电子有限公司 针对多核/众核处理器程序分割的后编译系统
US20100287357A1 (en) * 2005-11-29 2010-11-11 Xmtt Inc. Computer Memory Architecture for Hybrid Serial and Parallel Computing Systems
KR101098758B1 (ko) * 2007-09-20 2011-12-26 서울대학교산학협력단 Fp-ra를 구성하는 pe 구조 및 그 fp-ra제어하는 fp-ra 제어 회로
US8250339B2 (en) * 2001-11-30 2012-08-21 Qst Holdings Llc Apparatus, method, system and executable module for configuration and operation of adaptive integrated circuitry having fixed, application specific computational elements
CN103020003A (zh) * 2012-12-31 2013-04-03 哈尔滨工业大学 面向多核程序确定性重演的内存竞争记录装置及其控制方法
US20140040564A1 (en) * 2009-09-30 2014-02-06 Netlogic Microsystems, Inc. System, Method, and Computer Program Product for Conditionally Sending a Request for Data to a Node Based on a Determination

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008034298A1 (en) * 2006-09-20 2008-03-27 Intel Corporation Optimized cache consistency algorithm in a point-to-point interconnected multiple processor system
US7788334B2 (en) * 2007-06-26 2010-08-31 International Business Machines Corporation Multiple node remote messaging
WO2010060283A1 (zh) 2008-11-28 2010-06-03 上海芯豪微电子有限公司 一种数据处理的方法与装置
US8169850B2 (en) * 2009-04-27 2012-05-01 Intel Corporation Forming multiprocessor systems using dual processors
JP2012252490A (ja) * 2011-06-02 2012-12-20 Renesas Electronics Corp マルチプロセッサおよびそれを用いた画像処理システム
US9612934B2 (en) * 2011-10-28 2017-04-04 Cavium, Inc. Network processor with distributed trace buffers

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8250339B2 (en) * 2001-11-30 2012-08-21 Qst Holdings Llc Apparatus, method, system and executable module for configuration and operation of adaptive integrated circuitry having fixed, application specific computational elements
US20040205288A1 (en) * 2003-04-14 2004-10-14 Copan Systems, Inc Method and apparatus for storage command and data router
CN1842781A (zh) * 2003-07-25 2006-10-04 拉莎微电子有限公司 高级处理器
US20060143384A1 (en) * 2004-12-27 2006-06-29 Hughes Christopher J System and method for non-uniform cache in a multi-core processor
CN1929026A (zh) * 2005-06-30 2007-03-14 英特尔公司 微型碎片存储器接口
US20100287357A1 (en) * 2005-11-29 2010-11-11 Xmtt Inc. Computer Memory Architecture for Hybrid Serial and Parallel Computing Systems
US20080320268A1 (en) * 2007-06-25 2008-12-25 Sonics, Inc. Interconnect implementing internal controls
KR101098758B1 (ko) * 2007-09-20 2011-12-26 서울대학교산학협력단 Fp-ra를 구성하는 pe 구조 및 그 fp-ra제어하는 fp-ra 제어 회로
CN101753388A (zh) * 2008-11-28 2010-06-23 中国科学院微电子研究所 适用于多核处理器片上和片间扩展的路由及接口装置
CN101751280A (zh) * 2008-11-28 2010-06-23 上海芯豪微电子有限公司 针对多核/众核处理器程序分割的后编译系统
US20140040564A1 (en) * 2009-09-30 2014-02-06 Netlogic Microsystems, Inc. System, Method, and Computer Program Product for Conditionally Sending a Request for Data to a Node Based on a Determination
CN103020003A (zh) * 2012-12-31 2013-04-03 哈尔滨工业大学 面向多核程序确定性重演的内存竞争记录装置及其控制方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
徐欣: "片上网络路由算法和映射算法研究", 《中国优秀硕士学位论文全文数据库(电子期刊)》 *
马光胜等: "<<Soc设计与IP核重用技术>>", 31 August 2006, 国防工业出版社 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111723900A (zh) * 2019-03-18 2020-09-29 北京灵汐科技有限公司 一种基于众核处理器的神经网络的映射方法及计算设备
CN111723900B (zh) * 2019-03-18 2023-10-20 北京灵汐科技有限公司 一种基于众核处理器的神经网络的映射方法及计算设备
CN117608864A (zh) * 2024-01-23 2024-02-27 中诚华隆计算机技术有限公司 一种多核缓存一致性方法及系统
CN117608864B (zh) * 2024-01-23 2024-04-09 中诚华隆计算机技术有限公司 一种多核缓存一致性方法及系统

Also Published As

Publication number Publication date
US20150234744A1 (en) 2015-08-20
US9977741B2 (en) 2018-05-22
US20160321177A1 (en) 2016-11-03
US9460012B2 (en) 2016-10-04
CN105095110B (zh) 2020-10-23

Similar Documents

Publication Publication Date Title
CN105095110A (zh) 可融合可重构缓存架构
US10282338B1 (en) Configuring routing in mesh networks
US7360024B2 (en) Multi-port integrated cache
CN100447738C (zh) 含有多级寄存器文件的数字数据处理设备
US8737392B1 (en) Configuring routing in mesh networks
US8151088B1 (en) Configuring routing in mesh networks
CA1324835C (en) Modular crossbar interconnection network for data transaction between system units in a multi-processor system
CN104699631A (zh) Gpdsp中多层次协同与共享的存储装置和访存方法
US6868017B2 (en) Integrated circuit device
TWI666551B (zh) 以複數個引擎作資源與互連結構的分散式分配以支援指令序列的執行
JP5212478B2 (ja) 制御装置、データ転送装置、情報処理装置、演算処理装置および情報処理装置の制御方法
EP1665065A2 (en) Integrated data processing circuit with a plurality of programmable processors
US6101589A (en) High performance shared cache
EP0347929B1 (en) Parallel processor
US7970980B2 (en) Method and apparatus for accessing memory in a computer system architecture supporting heterogeneous configurations of memory structures
JP2021507386A (ja) ニューラルネットワーク処理のための共用メモリの集中型−分散型混合構成
US6606684B1 (en) Multi-tiered memory bank having different data buffer sizes with a programmable bank select
CN1429369A (zh) 具有可配置的高速缓存/静态随机存取存储器的系统
US5297255A (en) Parallel computer comprised of processor elements having a local memory and an enhanced data transfer mechanism
JP2001092772A (ja) 同期固定レイテンシループを使用するデータバス
CN103365795A (zh) 分布式重排序缓冲器
CN101243416A (zh) 在具有至少两个处理单元和用于数据和/或指令的至少一个第一存储器或存储器区域的计算机系统中存储数据和/或指令的设备和方法
US8429353B2 (en) Distributed home-node hub
CN108874730A (zh) 一种数据处理器及数据处理方法
JP2002055879A (ja) マルチポートキャッシュメモリ

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