CN115269492A - 可重构处理器多端口缓存的流式数据管理方法及装置 - Google Patents
可重构处理器多端口缓存的流式数据管理方法及装置 Download PDFInfo
- Publication number
- CN115269492A CN115269492A CN202210716651.5A CN202210716651A CN115269492A CN 115269492 A CN115269492 A CN 115269492A CN 202210716651 A CN202210716651 A CN 202210716651A CN 115269492 A CN115269492 A CN 115269492A
- Authority
- CN
- China
- Prior art keywords
- cache
- cache line
- processing unit
- hit
- unit array
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/80—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
- G06F15/8053—Vector processors
- G06F15/8061—Details on data memory access
- G06F15/8069—Details on data memory access using a cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7867—Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
- G06F15/7871—Reconfiguration support, e.g. configuration loading, configuration switching, or hardware OS
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/80—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
- G06F15/8053—Vector processors
- G06F15/8076—Details on data register access
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
本发明提供了一种可重构处理器多端口缓存的流式数据管理方法及装置,涉及大规模集成电路技术领域,该方法包括:在处理单元阵列访问缓存时,若未命中,则通过轮询仲裁的方式驱逐目标位为第一预设值的缓存行,将后续进入缓存的缓存行的目标位设为所述第一预设值;在处理单元阵列访问缓存时,若命中,则基于上一次命中的缓存行与本次命中缓存行之间的间隔,将本次命中的缓存行的目标位设为第二预设值。本发明可以在流式数据的冲刷下有效减少缓存抖动的概率,从而减少访问片外存储器的频率,提高PEA的访存带宽,缓解因为组相联可能带来的冲突缺失,针对流式数据减少缺失率。
Description
技术领域
本发明涉及大规模集成电路技术领域,尤其是涉及一种可重构处理器多端口缓存的流式数据管理方法及装置。
背景技术
本部分旨在为权利要求书中陈述的本发明实施例提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。
以冯诺依曼架构为核心的计算机和微处理器在过去取得了巨大的成功,因为以指令流驱动为特征的处理器通常具有很强的灵活性。目前,指令流驱动的处理器通常包括通用处理器(General Purpose Processer,GPP)和嵌入式处理器等。然而,也正是由于指令驱动的执行方式,以及有限的计算单元和存储带宽,此类处理器的性能和功耗很不理想,无法满足与日俱增的应用计算需求。例如,经典MIPS架构的通用处理器中,完整执行一条指令就包括取指、译码、寄存器访问、执行和数据回写这五个步骤;其中,只有“执行”这一步是真正所需要的操作。上世纪90年代兴起的专用集成电路(Application Specific IntegratedCircuits,ASIC)采用的就是数据流驱动的计算架构,无需指令集,可以针对不同的应用去设计最优的数据通路,从而达到优良的性能和较低的功耗。但是ASIC也存在致命的缺陷,因为它的灵活性和可扩展性极差,无法适用于日益演变的应用场景和功能。随着制程向着7nm甚至5nm推进,专用集成电路的制造费用变得非常昂贵,其漫长的设计周期也制约了它的向前发展。
在这些背景下,粗粒度可重构架构(Coarse-Grained ReconfigurableArchitecture,CGRA)的处理器由于其具有较粗的计算粒度(指可重构处理器数据通路中运算单元的数据位宽度,一般将大于等于4bit的粒度称为粗粒度),虽然其灵活性有所下降,但所需的配置信息更少,重构数据通路的速度也更快,而正展现出广阔的应用前景。与许多传统的空间并行计算架构类似,CGRA的访存行为也具有明显的流式特征,即CGRA通常访问一段连续的地址空间。另外,CGRA具有多个处理单元阵列(Processing Element Array,PEA),每个处理单元阵列又都有程度不一的流式访存行为。如何对这些流式数据进行管理成为CGRA片上缓存优化的重点。
发明内容
本发明提供了一种可重构处理器多端口缓存的流式数据管理方法及装置,可以在流式数据的冲刷下有效减少缓存抖动的概率,从而减少访问片外存储器的频率,提高PEA的访存带宽,缓解因为组相联可能带来的冲突缺失,针对流式数据减少缺失率。
第一方面,本发明实施例提供了一种可重构处理器多端口缓存的流式数据管理方法,该方法包括:
在处理单元阵列访问缓存时,若未命中,则通过轮询仲裁的方式驱逐目标位为第一预设值的缓存行,将后续进入缓存的缓存行的所述目标位设为所述第一预设值;
在处理单元阵列访问缓存时,若命中,则基于上一次命中的缓存行与本次命中缓存行之间的间隔,将本次命中的缓存行的目标位设为第二预设值。
第二方面,本发明实施例还提供一种可重构处理器多端口缓存的流式数据管理装置,该装置包括:
驱逐和插入模块,用于在处理单元阵列访问缓存时,若未命中,则通过轮询仲裁的方式驱逐目标位为第一预设值的缓存行,将后续进入缓存的缓存行的所述目标位设为所述第一预设值;
提升模块,用于在处理单元阵列访问缓存时,若命中,则基于上一次命中的缓存行与本次命中缓存行之间的间隔,将本次命中的缓存行的目标位设为第二预设值。
第三方面,本发明实施例还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述可重构处理器多端口缓存的流式数据管理方法。
第四方面,本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有执行上述可重构处理器多端口缓存的流式数据管理方法的计算机程序。
本发明实施例带来了以下有益效果:本发明实施例提供了一种可重构处理器多端口缓存的流式数据管理方法及装置,该方法包括:在处理单元阵列访问缓存时,若未命中,则通过轮询仲裁的方式驱逐目标位为第一预设值的缓存行,将后续进入缓存的缓存行的目标位设为所述第一预设值;在处理单元阵列访问缓存时,若命中,则基于上一次命中的缓存行与本次命中缓存行之间的间隔,将本次命中的缓存行的目标位设为第二预设值。本发明实施例将新进入缓存的缓存行的目标位设为第一预设值,进而在发生访存缺失时,通过轮询仲裁的方式驱逐目标位为第一预设值的缓存行,可以在流式数据的冲刷下有效减少缓存抖动的概率,从而减少访问片外存储器的频率,提高PEA的访存带宽,另外,本发明实施例还可以基于上一次命中的缓存行和本次命中缓存行之间的关系,修改命中的缓存行的目标位,将目标位设为第二预设值,缓解因为组相联可能带来的冲突缺失,针对流式数据减少缺失率。
本发明的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的可重构处理器多端口缓存的流式数据管理方法流程图;
图2为本发明实施例提供的一种可重构处理器多端口缓存的流式数据管理装置结构框图;
图3为本发明实施例提供的另一种可重构处理器多端口缓存的流式数据管理装置结构框图;
图4为本发明实施例提供的另一种可重构处理器多端口缓存的流式数据管理装置结构框图;
图5为本发明实施例提供的划分模块结构框图;
图6为本发明实施例提供的另一种划分模块结构框图;
图7为本发明实施例提供的电子设备的系统组成结构示意图;
图8为本发明实施例提供的PEA结构示意图;
图9为本发明实施例提供的多端口缓存的整体结构示意图;
图10为本发明实施例提供的可重构处理器多端口缓存的流式数据管理方法实施流程图;
图11为本发明实施例提供的预取控制器结构示意图;
图12为本发明实施例提供的首次划分示意图;
图13为本发明实施例提供的缺失后的划分示意图;
图14为本发明实施例提供的合并缓存空间示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
可重构架构处理器具有层次化的结构,包含多个处理单元(Processing Element,PE)和多个处理单元阵列(Processing Element Array,PEA);其片上缓存结构具有多端口的结构以支持多个PEA同时访存。
基于CGRA片上缓存的特点,本发明实施例提供的一种可重构处理器多端口缓存的流式数据管理方法及装置,设计了片上缓存中数据的高效管理方案,该方案包括如何驱逐无用的数据、搬运将来可能要用到的数据以及合理地为每个阵列划分缓存空间从而避免容量缺失。这三点分别对应替换策略(Replacement Policy)、预取(Prefetching)以及缓存划分(Cache Partitioning)。
为便于对本实施例进行理解,首先对本发明实施例所公开的一种可重构处理器多端口缓存的流式数据管理方法进行详细介绍。
首先,对PEA结构进行说明。CGRA中参与计算的核心单元是处理单元阵列PEA,其结构如图8所示。
在图8中,PEA模块内部集成了一个8×8的处理单元阵列、处理单元的全局寄存器Global Reg、协处理器接口Coprocessor Interface、数据控制器Data Control、数据共享存储Shared Memory、PEA控制器PEA Control和配置控制器Context Control。其中,全局寄存器中的一些寄存器控制着访存的行为,具体来说,33、34、35和36号寄存器分别存储了PEA取配置信息的起始地址和长度,以及取数据的起始地址和长度。
参见图9所示的多端口缓存的整体结构示意图,处理单元阵列接口接收8个PEA的访存请求,将其暂存在先入先出存储器(First In First Out,FIFO)里;访存控制器获取请求,根据配置访问Cache空间或Buffer空间,若访问Buffer则接下来直接访问数据存储体(Data Banks),若访问Cache则增加一个访问标志存储体(Flag Banks)的流程;预取控制器(Prefetch Controller)根据PEA的请求和Cache命中或缺失的信息,发起对片外数据的预取请求;写缓冲区(Write Buffer)将没有落在Buffer空间的写数据暂存下来;主端口接口(Master Interface)仲裁来自写缓存和预取控制器的请求,访问片外主存DRAM;从端接口(Slave Interface)将片外数据搬运到Buffer空间;划分控制器(Partition Controller)为每个PEA划分缓存空间;替换控制器(Replace Controller)在发生缺失时决定替换哪一路的数据;存储器接口(Mem Interface)仲裁上述的所有访问片上存储体的请求,并将这些请求送到对应的存储体上。本专利主要介绍多端口缓存的流式数据管理方案,具体来说涉及3个策略的实现:替换策略、预取策略和划分策略,对应的硬件模块分别为替换控制器、预取控制器和划分控制器(边框加粗部分)。
Data Banks是用来存储缓存行数据的。Flag Banks存储的是标记一段缓存行数据的信息(包括缓存行的地址tag,和缓存行的有效位valid)。Cache之所以能访问完整的32位地址空间,就是因为Flag Banks中存储了这些标志信息。
本发明实施例提供了一种可重构处理器多端口缓存的流式数据管理方法,该方法基于上述PEA结构和多端口缓存的整体结构实现。
参见图1所示的一种可重构处理器多端口缓存的流式数据管理方法流程图,该方法包括以下步骤:
步骤S102,在处理单元阵列访问缓存时,若未命中,则通过轮询仲裁的方式驱逐目标位为第一预设值的缓存行,将后续进入缓存的缓存行的所述目标位设为所述第一预设值。
在本发明实施例中,在处理单元阵列访问缓存的流式数据时,在没有命中的情况下,通过轮询仲裁的方式对缓存行进行驱逐,将目标位为第一预设值的缓存行作为要驱逐的缓存行。第一预设值用于确定缓存行无效,也就是说,若后续不再使某缓存行,可通过将该缓存行的目标位设为第一预设值。后续进入缓存的缓存行是指新进入缓存的缓存行。
需要说明的是,在本发明实施例中,目标位可以是最近最多使用(Most RecentlyUsed,MRU)位。第一预设值可以是0。
根据CGRA访存的流式特点,该方法可优化多端口缓存的替换策略,即基于最近最多使用(MRU,Most Recently Used)位的伪最近最少使用插入策略(Pseud LeastInsertion Policy based on MRU bits,PLIPM)。参见图10所示的可重构处理器多端口缓存的流式数据管理方法实施流程图,该替换策略改变MRU替换策略的插入策略,使新进入缓存的缓存行的MRU位设为0而非1。这样一来,驱逐策略不能单纯地只驱逐那些MRU位为0的缓存行,因为新进入的缓存行的MRU位为0,如果它刚进入就立马驱逐它,那么也会造成缓存抖动。所以驱逐策略要采用轮询仲裁的方式驱逐那些MRU为0的缓存行,这样就避免了该情况的发生。
需要说明的是,在具体实施时,例如,编号为3、2、1、0的4个缓存行,如果它们的MRU均为0,那么要仲裁1个驱逐出去。按照3→2→1→0→3→2→1→0…这样的方式仲裁时,称为轮询仲裁。轮询仲裁避免了每次驱逐同一个缓存行。
步骤S104,在处理单元阵列访问缓存时,若命中,则基于上一次命中的缓存行与本次命中缓存行之间的间隔,将本次命中的缓存行的目标位设为第二预设值。
在本发明实施例中,在处理单元阵列访问缓存的流式数据时,在成功命中的情况下,在使上一次命中的缓存行与本次命中缓存行之间存在间隔的时候,将本次命中的缓存行的目标位设为第二预设值。第二预设值用于确定缓存行有效,也就是说,若后续想继续使用某缓存行,可通过将该缓存行的目标位设为第二预设值。
需要说明的是,在本发明实施例中,第二预设值可以是1。
可重构处理器中缓存行的大小为32B×8,即每个缓存行有8个32B的数据,在这种条件下用简单的全相联Cache讨论替换策略的选择则不太合适:一是因为组相联带来了可能的冲突缺失,二是缓存行增大后会使替换策略在流式的访问下错误地提升某些缓存行。因此,除了修改插入策略和驱逐策略之外,还修改了PLIPM算法的提升策略,只有间隔了若干个缓存行访问的命中才会将MRU位置为1。
本发明实施例提供了一种可重构处理器多端口缓存的流式数据管理方法及装置,该方法包括:在处理单元阵列访问缓存时,若未命中,则通过轮询仲裁的方式驱逐目标位为第一预设值的缓存行,将后续进入缓存的缓存行的目标位设为所述第一预设值;在处理单元阵列访问缓存时,若命中,则基于上一次命中的缓存行与本次命中缓存行之间的间隔,将本次命中的缓存行的目标位设为第二预设值。本发明实施例将新进入缓存的缓存行的目标位设为第一预设值,进而在发生访存缺失时,通过轮询仲裁的方式驱逐目标位为第一预设值的缓存行,可以在流式数据的冲刷下有效减少缓存抖动的概率,从而减少访问片外存储器的频率,提高PEA的访存带宽,另外,本发明实施例还可以基于上一次命中的缓存行和本次命中缓存行之间的关系,修改命中的缓存行的目标位,将目标位设为第二预设值,缓解因为组相联可能带来的冲突缺失,针对流式数据减少缺失率。
在一个实施例中,基于上一次命中的缓存行与本次命中缓存行之间的间隔,将本次命中的缓存行的目标位设为第二预设值,可以按照如下步骤执行:
判断上一次命中的缓存行与本次命中的缓存行是否为同一个缓存行;如果否,则将本次命中的缓存行的目标位设为第二预设值;如果是,则保持本次命中的缓存行的目标位值不变。
在本发明实施例中,参见图10所示的可重构处理器多端口缓存的流式数据管理方法实施流程图,通过判断上一次命中的缓存行与本次命中的缓存行是否为同一个缓存行,实现对上一次命中的缓存行与本次命中缓存行之间是否存在间隔的判断。
在一个实施例中,将后续进入缓存的缓存行的目标位设为第一预设值之前,还可以执行如下步骤:
获取缺失地址信息和处理单元阵列预存信息;处理单元阵列预存信息中包括处理单元阵列将发起访问序列的起始地址信息和长度信息;若缺失地址信息与起始地址信息一致,则利用状态机根据长度信息获取片外数据;基于片外数据确定后续进入缓存的流式数据。
在本发明实施例中,在处理单元阵列访问缓存时,获取未命中的情况下的缺失地址信息。在CGRA中,一些特殊寄存器存储了PEA将要发起访问序列的起始地址和长度,这为数据预取带来了极大的方便:我们不需要特殊的机制来检测流式访问行为,仅需要利用好这些特殊寄存器的值来进行数据预取即可。参见图8,图中的33、34、35和36号寄存器分别存储了PEA取配置信息的起始地址和长度,以及取数据的起始地址和长度。由于取配置和取数据不会同时发生,因此我们将两者的寄存器信息融合,将起始地址和长度信息连接到PEA顶层,作为片上缓存中预取单元的输入信号。预取单元接收这两个信号并存储到对应的寄存器中。访存控制器通知预取单元哪个地址发生了缺失,若该缺失地址与寄存器中的起始地址一致,则开始预取。预取的长度为对应的寄存器中存储的长度值。如果有多个地址匹配,则由轮询仲裁器选择一个进行预取。图11给出了预取单元的结构框图,图中Base表示首地址,Len表示序列长度,State表示状态机状态。
在一个实施例中,利用状态机根据长度信息获取片外数据,可以按照如下步骤执行:
控制状态机的状态包括如下状态中的一种或几种:闲置状态、开始预取状态、标志访问状态、替换单元访问状态、写操作状态、取数据状态、等待状态或标志修改状态;根据状态机的状态和长度信息获取片外数据。
在本发明实施例中,预取单元的状态机控制了整个预取流程:具体实施时,可以用IDLE表示闲置状态;START表示开始预取状态,在此状态时对划分单元发起请求,以得到对应缓存资源是哪几条路的信息;FLAG READ表示标志访问状态,该状态下发起对标志存储器的访问,以得到缓存行的valid信息;REPL表示替换单元访问状态,该状态下发起对替换单元的访问,从而知道替换哪一路;FLAG INVALID表示写操作状态,该状态下发起对标志存储器的写操作,将要替换那一路的缓存行valid值写为0,使这一缓存行无效,避免期间读数据的错误;FETCH表示取数据状态,该状态下发起对片外DDR的访问,取回想要的数据;WAIT表示等待状态,该状态表示等待数据从片外搬运到片内的状态;FLAG VALID表示标志修改状态,该状态表示将缓存行的valid值置为1,使这一缓存行有效。若预取的缓存行的数目等于长度寄存器的值,则回到IDLE状态,否则回到FLAG READ状态,进行下一个缓存行的操作。
在一个实施例中,还可以执行如下步骤:
利用计数器统计目标处理单元阵列的访存缺失次数;根据访存缺失次数和目标处理单元阵列的存储体数量,为目标处理单元分配新增存储体。
在本发明实施例中,为PEA划分缓存空间时可以采用贪婪算法:缓存的每个PEA的空间都有一个缺失计数器,在PEA发生访存缺失时,对应的计数器加1。每个处理单元阵列都包括多个存储体,通过分析访存缺失次数和目标处理单元阵列的存储体数量之间的数量关系,为目标处理单元分配额外的存储体。
需要说明的是,将正在对其进行存储体数量分析或分配的处理单元阵列作为目标处理单元阵列。
另外需要说明的是,本发明实施例中的存储体可以包括数据存储体和访问标志存储体。
在一个实施例中,根据访存缺失次数和目标处理单元阵列的存储体数量,为目标处理单元分配新增存储体,可以按照如下步骤执行:
当访存缺失次数累加到存储体数量的目标倍数时,为目标处理单元分配一个存储体。
在本发明实施例中,当缺失计数器的值累加到等于该区域的存储体数量乘4时,如果有剩余未分配的存储体,则为它分配一个存储体,同时缺失计数器清零。目标倍数可以根据实际需求进行设置,本发明实施例对此不作具体限定。
在具体实施时,以4个PEA访问16个存储体的缓存进行示意。
参见图12所示的首次划分示意图,4个PEA在首次划分后都有属于自己的缓存空间,此外预留4个bank不为任何PEA分配;
参见图13所示的缺失后的划分示意图,当运行一定的时间后,PEA1缓存的容量缺失或者冲突缺失数量超过了为它分配的bank数乘以4时,则将预留的一路缓存空间划分给PEA1,同时将属于PEA1的缺失计数器清零。其他PEA的缓存分配方案同理。按照这样的划分策略后,PEA3至PEA0拥有的bank数目分别为:4、4、5、3。
在一个实施例中,还可以执行如下步骤:
若第一处理单元阵列和第二处理单元阵列的起始地址信息相同,则对第一处理单元阵列的缓存空间和第二处理单元阵列的缓存空间进行合并;基于预设优先级信息控制第一处理单元阵列和第二处理单元阵列访问标志存储器。
在本发明实施例中,为了支持片上缓存多端口的特性同时减少硬件存储开销,PEA之间只能部分共享缓存而不能共享整个缓存空间,部分共享发生的时机是在预取单元检测到相邻两个PEA预取的首地址一样的时候。优先级信息可以预先进行设定,本发明实施例对此不作具体限定。
在具体实施时,以4个PEA访问16个存储体的缓存进行示意。参见图14所示的合并缓存空间示意图,划分控制器发现了在PEA 3和PEA 2之间存在数据共享,于是将其缓存空间合并。共享信息是由预取模块传递过来的:相邻PEA的预取数据起始地址相同时,则判断它们为共享的。在PEA 3和PEA 2共享同一片缓存空间时,由于没有对标志存储器进行复制,因此其中一个PEA必须延迟一个时钟周期以访问标志存储器。访问标志存储器的优先级是PEA序号更大的更优先,例如PEA3>PEA 2。
本发明提供了一种可重构处理器多端口缓存的流式数据管理方法及装置,该方法主要针对多端口片上缓存设计了替换策略、预取策略以及缓存划分策略。每次访问缓存时,都会触发替换策略;在访问缓存发生缓存缺失时,触发预取策略;在发生缺失的数量达到一定值时,触发划分策略。该方法基于最近最多使用位的伪最近最少使用插入策略可以在流式数据的冲刷下有效减少缓存抖动的概率,从而减少访问片外存储器的频率,提高PEA的访存带宽;利用CGRA特殊寄存器的值进行预取可以对将要用到的有效数据提前取回;基于贪婪算法的划分策略可以有效地划分缓存空间,减少缺失率。
本发明实施例中还提供了一种可重构处理器多端口缓存的流式数据管理装置,如下面的实施例所述。由于该装置解决问题的原理与可重构处理器多端口缓存的流式数据管理方法相似,因此该装置的实施可以参见可重构处理器多端口缓存的流式数据管理方法的实施,重复之处不再赘述。参见图2所示的一种可重构处理器多端口缓存的流式数据管理装置结构框图,该装置包括:
驱逐和插入模块21,用于在处理单元阵列访问缓存时,若未命中,则通过轮询仲裁的方式驱逐目标位为第一预设值的缓存行,将后续进入缓存的缓存行的目标位设为第一预设值;提升模块22,用于在处理单元阵列访问缓存时,若命中,则基于上一次命中的缓存行与本次命中缓存行之间的间隔,将本次命中的缓存行的目标位设为第二预设值。
在一个实施例中,提升模块,具体用于:
判断上一次命中的缓存行与本次命中的缓存行是否为同一个缓存行;如果否,则将本次命中的缓存行的目标位设为第二预设值;如果是,则保持本次命中的缓存行的目标位值不变。
参见图3所示的另一种可重构处理器多端口缓存的流式数据管理装置结构框图,该装置还包括预取模块23,用于:
获取缺失地址信息和处理单元阵列预存信息;处理单元阵列预存信息中包括处理单元阵列将发起访问序列的起始地址信息和长度信息;若缺失地址信息与起始地址信息一致,则利用状态机根据长度信息获取片外数据;基于片外数据确定后续进入缓存的流式数据。
在一个实施例中,预取模块,具体用于:
控制状态机的状态包括如下状态中的一种或几种:闲置状态、开始预取状态、标志访问状态、替换单元访问状态、写操作状态、取数据状态、等待状态或标志修改状态;根据状态机的状态和长度信息获取片外数据。
在一个实施例中,参见图4所示的另一种可重构处理器多端口缓存的流式数据管理装置结构框图,该装置还包括划分模块24,参见图5所示的划分模块结构框图,划分模块包括:计数单元51,用于利用计数器统计目标处理单元阵列的访存缺失次数;分配单元52,用于根据访存缺失次数和目标处理单元阵列的存储体数量,为目标处理单元分配新增存储体。
在一个实施例中,分配单元,具体用于:
当访存缺失次数累加到存储体数量的目标倍数时,为目标处理单元分配一个存储体。
在一个实施例中,参见图6所示的另一种划分模块结构框图,划分模块,还包括共享单元53,用于:
若第一处理单元阵列和第二处理单元阵列的起始地址信息相同,则对第一处理单元阵列的缓存空间和第二处理单元阵列的缓存空间进行合并;基于预设优先级信息控制第一处理单元阵列和第二处理单元阵列访问标志存储器。
基于同一发明构思,本发明实施例中还提供了一种用于实现上述可重构处理器多端口缓存的流式数据管理方法中的全部或部分内容的电子设备实施例。该电子设备具体包含有如下内容:
处理器(processor)、存储器(memory)、通信接口(Communications Interface)和总线;其中,所述处理器、存储器、通信接口通过所述总线完成相互间的通信;所述通信接口用于实现相关设备之间的信息传输;该电子设备可以是台式计算机、平板电脑及移动终端等,本实施例不限于此。在本实施例中,该电子设备可以参照实施例用于实现上述可重构处理器多端口缓存的流式数据管理方法的实施例及用于实现上述可重构处理器多端口缓存的流式数据管理装置的实施例进行实施,其内容被合并于此,重复之处不再赘述。
图7为本发明实施例中提供的一种电子设备的系统组成结构示意图。如图7所示,该电子设备70可以包括处理器701和存储器702;存储器702耦合到处理器701。值得注意的是,该图7是示例性的;还可以使用其他类型的结构,来补充或代替该结构,以实现电信功能或其他功能。
在一个实施例中,可重构处理器多端口缓存的流式数据管理方法实现的功能可以被集成到处理器701中。其中,处理器701可以被配置为进行如下控制:
在处理单元阵列访问缓存时,若未命中,则通过轮询仲裁的方式驱逐目标位为第一预设值的缓存行,将后续进入缓存的缓存行的目标位设为所述第一预设值;在处理单元阵列访问缓存时,若命中,则基于上一次命中的缓存行与本次命中缓存行之间的间隔,将本次命中的缓存行的目标位设为第二预设值。
由上可知,本发明的实施例中提供的电子设备,可以在流式数据的冲刷下有效减少缓存抖动的概率,从而减少访问片外存储器的频率,提高PEA的访存带宽,缓解因为组相联可能带来的冲突缺失,针对流式数据减少缺失率。
在另一个实施例中,可重构处理器多端口缓存的流式数据管理装置可以与处理器701分开配置,例如可以将可重构处理器多端口缓存的流式数据管理装置配置为与处理器701连接的芯片,通过处理器的控制来实现可重构处理器多端口缓存的流式数据管理方法的功能。
如图7所示,该电子设备70还可以包括:通信模块703、输入单元704、音频处理单元705、显示器706、电源707。值得注意的是,电子设备70也并不是必须要包括图7中所示的所有部件;此外,电子设备70还可以包括图7中没有示出的部件,可以参考现有技术。
如图7所示,处理器701有时也称为控制器或操作控件,可以包括微处理器或其他处理器装置和/或逻辑装置,该处理器701接收输入并控制电子设备70的各个部件的操作。
其中,存储器702,例如可以是缓存器、闪存、硬驱、可移动介质、易失性存储器、非易失性存储器或其它合适装置中的一种或更多种。可储存上述与失败有关的信息,此外还可存储执行有关信息的程序。并且处理器701可执行该存储器702存储的该程序,以实现信息存储或处理等。
输入单元704向处理器701提供输入。该输入单元704例如为按键或触摸输入装置。电源707用于向电子设备70提供电力。显示器706用于进行图像和文字等显示对象的显示。该显示器例如可为LCD显示器,但并不限于此。
该存储器702可以是固态存储器,例如,只读存储器(ROM)、随机存取存储器(RAM)、SIM卡等。还可以是这样的存储器,其即使在断电时也保存信息,可被选择性地擦除且设有更多数据,该存储器的示例有时被称为EPROM等。存储器702还可以是某种其它类型的装置。存储器702包括缓冲存储器7021(有时被称为缓冲器)。存储器702可以包括应用/功能存储部7022,该应用/功能存储部7022用于存储应用程序和功能程序或用于通过处理器701执行电子设备70的操作的流程。
存储器702还可以包括数据存储部7023,该数据存储部7023用于存储数据,例如联系人、数字数据、图片、声音和/或任何其他由电子设备使用的数据。存储器702的驱动程序存储部7024可以包括电子设备的用于通信功能和/或用于执行电子设备的其他功能(如消息传送应用、通讯录应用等)的各种驱动程序。
通信模块703即为经由天线708发送和接收信号的发送机/接收机。通信模块(发送机/接收机)703耦合到处理器701,以提供输入信号和接收输出信号,这可以和常规移动通信终端的情况相同。
基于不同的通信技术,在同一电子设备中,可以设置有多个通信模块703,如蜂窝网络模块、蓝牙模块和/或无线局域网模块等。通信模块(发送机/接收机)703还经由音频处理单元705耦合到扬声器709和麦克风710,以经由扬声器709提供音频输出,并接收来自麦克风710的音频输入,从而实现通常的电信功能。音频处理单元705可以包括任何合适的缓冲器、解码器、放大器等。另外,音频处理单元705还耦合到处理器701,从而使得可以通过麦克风710能够在本机上录音,且使得可以通过扬声器709来播放本机上存储的声音。
本发明的实施例中还提供了一种用于实现上述实施例中可重构处理器多端口缓存的流式数据管理方法中全部步骤的一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例中的可重构处理器多端口缓存的流式数据管理方法的全部步骤,例如,该处理器执行该计算机程序时实现下述步骤:
在处理单元阵列访问缓存时,若未命中,则通过轮询仲裁的方式驱逐目标位为第一预设值的缓存行,将后续进入缓存的缓存行的目标位设为所述第一预设值;在处理单元阵列访问缓存时,若命中,则基于上一次命中的缓存行与本次命中缓存行之间的间隔,将本次命中的缓存行的目标位设为第二预设值。
由上可知,本发明的实施例中提供的计算机可读存储介质,可以在流式数据的冲刷下有效减少缓存抖动的概率,从而减少访问片外存储器的频率,提高PEA的访存带宽,缓解因为组相联可能带来的冲突缺失,针对流式数据减少缺失率。
虽然本发明提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的劳动可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的装置或客户端产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境)。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。术语“上”、“下”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。
除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。本发明并不局限于任何单一的方面,也不局限于任何单一的实施例,也不局限于这些方面和/或实施例的任意组合和/或置换。可单独使用本发明的每个方面和/或实施例,或者与一个或更多其他方面和/或其他实施例结合使用。
最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (10)
1.一种可重构处理器多端口缓存的流式数据管理方法,其特征在于,包括:
在处理单元阵列访问缓存时,若未命中,则通过轮询仲裁的方式驱逐目标位为第一预设值的缓存行,将后续进入缓存的缓存行的所述目标位设为所述第一预设值;所述第一预设值用于确定缓存行无效;
在处理单元阵列访问缓存时,若命中,则基于上一次命中的缓存行与本次命中缓存行之间的间隔,将本次命中的缓存行的目标位设为第二预设值;所述第二预设值用于确定缓存行有效。
2.根据权利要求1所述的方法,其特征在于,基于上一次命中的缓存行与本次命中缓存行之间的间隔,将本次命中的缓存行的目标位设为第二预设值,包括:
判断上一次命中的缓存行与本次命中的缓存行是否为同一个缓存行;
如果否,则将本次命中的缓存行的目标位设为第二预设值;
如果是,则保持本次命中的缓存行的目标位值不变。
3.根据权利要求1所述的方法,其特征在于,将后续进入缓存的缓存行的所述目标位设为所述第一预设值之前,还包括:
获取缺失地址信息和处理单元阵列预存信息;所述处理单元阵列预存信息中包括处理单元阵列将发起访问序列的起始地址信息和长度信息;
若所述缺失地址信息与所述起始地址信息一致,则利用状态机根据所述长度信息获取片外数据;
基于所述片外数据确定后续进入缓存的流式数据。
4.根据权利要求3所述的方法,其特征在于,利用状态机根据所述长度信息获取片外数据,包括:
控制状态机的状态包括如下状态中的一种或几种:闲置状态、开始预取状态、标志访问状态、替换单元访问状态、写操作状态、取数据状态、等待状态或标志修改状态;
根据所述状态机的状态和所述长度信息获取片外数据。
5.根据权利要求1-4任一项所述的方法,其特征在于,还包括:
利用计数器统计目标处理单元阵列的访存缺失次数;
根据所述访存缺失次数和所述目标处理单元阵列的存储体数量,为所述目标处理单元分配新增存储体。
6.根据权利要求5所述的方法,其特征在于,根据所述访存缺失次数和所述目标处理单元阵列的存储体数量,为所述目标处理单元分配新增存储体,包括:
当所述访存缺失次数累加到所述存储体数量的目标倍数时,为所述目标处理单元分配一个存储体。
7.根据权利要求5所述的方法,其特征在于,还包括:
若第一处理单元阵列和第二处理单元阵列的起始地址信息相同,则对所述第一处理单元阵列的缓存空间和所述第二处理单元阵列的缓存空间进行合并;
基于预设优先级信息控制所述第一处理单元阵列和第二处理单元阵列访问标志存储器。
8.一种可重构处理器多端口缓存的流式数据管理装置,其特征在于,包括:
驱逐和插入模块,用于在处理单元阵列访问缓存时,若未命中,则通过轮询仲裁的方式驱逐目标位为第一预设值的缓存行,将后续进入缓存的缓存行的所述目标位设为所述第一预设值;所述第一预设值用于确定缓存行无效;
提升模块,用于在处理单元阵列访问缓存时,若命中,则基于上一次命中的缓存行与本次命中缓存行之间的间隔,将本次命中的缓存行的目标位设为第二预设值;所述第二预设值用于确定缓存行有效。
9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7任一所述可重构处理器多端口缓存的流式数据管理方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有执行权利要求1至7任一所述可重构处理器多端口缓存的流式数据管理方法的计算机程序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210716651.5A CN115269492A (zh) | 2022-06-23 | 2022-06-23 | 可重构处理器多端口缓存的流式数据管理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210716651.5A CN115269492A (zh) | 2022-06-23 | 2022-06-23 | 可重构处理器多端口缓存的流式数据管理方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115269492A true CN115269492A (zh) | 2022-11-01 |
Family
ID=83761523
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210716651.5A Pending CN115269492A (zh) | 2022-06-23 | 2022-06-23 | 可重构处理器多端口缓存的流式数据管理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115269492A (zh) |
-
2022
- 2022-06-23 CN CN202210716651.5A patent/CN115269492A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8683136B2 (en) | Apparatus and method for improving data prefetching efficiency using history based prefetching | |
US6542968B1 (en) | System and method for managing data in an I/O cache | |
KR101419615B1 (ko) | 리드 및 라이트 인식 캐시 | |
JP5536658B2 (ja) | バッファメモリ装置、メモリシステム及びデータ転送方法 | |
US8732409B2 (en) | Cache management policy and corresponding device | |
US20180300258A1 (en) | Access rank aware cache replacement policy | |
JP6859361B2 (ja) | 中央処理ユニット(cpu)ベースシステムにおいて複数のラストレベルキャッシュ(llc)ラインを使用してメモリ帯域幅圧縮を行うこと | |
CN113424160A (zh) | 一种处理方法、装置及相关设备 | |
US8595443B2 (en) | Varying a data prefetch size based upon data usage | |
US10496550B2 (en) | Multi-port shared cache apparatus | |
KR20120025612A (ko) | 컴퓨터 스레드들의 이종 리소스들로의 맵핑 | |
KR20160141735A (ko) | 캐시 오염을 감소시키기 위해서 전용 캐시 세트들에서의 경합 전용 프리페치 정책들에 기초한 적응형 캐시 프리페칭 | |
JP2000507010A (ja) | 画素エンジン・データ・キャッシング機構 | |
US11301250B2 (en) | Data prefetching auxiliary circuit, data prefetching method, and microprocessor | |
CN113407119B (zh) | 数据预取方法、数据预取装置、处理器 | |
US20090024796A1 (en) | High Performance Multilevel Cache Hierarchy | |
US6959363B2 (en) | Cache memory operation | |
JP2014115851A (ja) | データ処理装置及びその制御方法 | |
CN107562806B (zh) | 混合内存文件系统的自适应感知加速方法及系统 | |
CN115421899A (zh) | 可重构处理器多端口可配缓存访问方法及装置 | |
JP5699854B2 (ja) | 記憶制御システムおよび方法、置換方式および方法 | |
CN113222115B (zh) | 面向卷积神经网络的共享缓存阵列 | |
CN115269492A (zh) | 可重构处理器多端口缓存的流式数据管理方法及装置 | |
US11080195B2 (en) | Method of cache prefetching that increases the hit rate of a next faster cache | |
WO2013086060A1 (en) | Selective access of a store buffer based on cache state |
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 |