CN112231243A - 一种数据处理方法、处理器及电子设备 - Google Patents
一种数据处理方法、处理器及电子设备 Download PDFInfo
- Publication number
- CN112231243A CN112231243A CN202011184703.6A CN202011184703A CN112231243A CN 112231243 A CN112231243 A CN 112231243A CN 202011184703 A CN202011184703 A CN 202011184703A CN 112231243 A CN112231243 A CN 112231243A
- Authority
- CN
- China
- Prior art keywords
- data processing
- processing core
- record
- read
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0842—Multiuser, multiprocessor or multiprocessing cache systems for multiprocessing or multitasking
-
- 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/0862—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
-
- 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/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
- G06F2212/1024—Latency reduction
-
- 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/60—Details of cache memory
- G06F2212/6042—Allocation of cache space to multiple users or processors
-
- 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
本申请涉及一种数据处理方法、处理器及电子设备,属于计算机领域。该方法应用于处理器,处理器包括主代理、多个数据处理核和与多个数据处理核一一对应的多个缓存系统。方法包括主代理在接收到数据处理核发起的写操作时,获取访问过写操作中的目的地址的数据处理核的历史读记录;基于历史读记录预测将使用写操作对应的待写入数据的目标数据处理核;向目标数据处理核对应的缓存系统发起预取探测请求,预取探测请求中携带有预取数据地址;目标数据处理核对应的缓存系统响应预取探测请求,从预取数据地址处读取预取数据并进行存储。通过历史读记录预测将使用待写入数据的目标数据处理核,并通过探测通知其将待写入数据提前写入,从而减少访问延迟。
Description
技术领域
本申请属于计算机领域,具体涉及一种数据处理方法、处理器及电子设备。
背景技术
目前的通用计算系统架构均包括至少一块具有低成本、高密度、高延迟特性的动态随机存储芯片(Dynamic Random Access Memory,DRAM),而DRAM的高延迟特征使得数据处理核(core)包含自己的缓存系统(cache)。数据处理核的缓存系统通过一致性主设备(coherence master)同数据总线(Bus/Fabric)相连,数据总线与一致性主代理(homeagent)相连,一致性主代理通过访存控制器(Memory Controller,MC)同储存芯片(DRAM)相连,其架构如图1所示。在图1的通用计算系统架构中,尽管使用了缓存技术,降低了储存芯片带来的高访存延时,但随着现代数字芯片处理数据能力的增长,访存延迟依然是通用计算系统架构的主要瓶颈。
发明内容
鉴于此,本申请的目的在于提供一种数据处理方法、处理器及电子设备,以改善现有通用计算系统架构的存在的访问延迟的问题。
本申请的实施例是这样实现的:
第一方面,本申请实施例提供了一种数据处理方法,应用于处理器,所述处理器包括:主代理、多个数据处理核和与所述多个数据处理核一一对应的多个缓存系统;所述方法包括:所述主代理在接收到数据处理核发起的写操作时,获取访问过所述写操作中的目的地址的数据处理核的历史读记录;所述主代理基于所述历史读记录预测将使用所述写操作对应的待写入数据的目标数据处理核;所述主代理向所述目标数据处理核对应的缓存系统发起预取探测请求,所述预取探测请求中携带有预取数据地址;所述目标数据处理核对应的缓存系统响应所述预取探测请求,从所述预取数据地址处读取预取数据,并进行存储。本申请实施例中,当主代理接收到数据处理核发起的写操作时,获取访问过该写操作中的目的地址的数据处理核的历史读记录,通过历史读记录来预测将使用待写入数据的目标数据处理核,并通过探测通知目标数据处理核对应的缓存系统将待写入数据提前写入,从而减少访问延迟。
结合第一方面实施例的一种可能的实施方式,所述主代理基于所述历史读记录预测将使用所述写操作对应的待写入数据的目标数据处理核,包括:获取所述历史读记录中记录的所有数据处理核;获取所述所有数据处理核中各个数据处理核各自的信心值,所述信心值用于表征数据处理核将使用所述待写入数据的概率;获取信心值大于第一预设阈值的数据处理核,其中,所述信心值大于所述第一预设阈值的数据处理核即为所述目标数据处理核。本申请实施例中,通过信心值的方式,可以快速确定需要数据预取的目标数据处理核,极大的提高了效率。
结合第一方面实施例的一种可能的实施方式,通过以下方式来更新所述信心值:所述主代理每次在接收到第一数据处理核发起的读操作时,判断所述历史读记录中是否记录有所述第一数据处理核,所述第一数据处理核为所述多个数据处理核中的任一数据处理核;若所述历史读记录中记录有所述第一数据处理核,则将所述历史读记录中的第一数据处理核的信心值加1;若所述历史读记录中没有记录有所述第一数据处理核,且记录项中有空白项,则将所述第一数据处理核加入所述历史读记录中的空白项;若所述历史读记录中没有记录有所述第一数据处理核,且记录项中没有空白项,则将所有记录项中记录的所有数据处理核各自的信心值减1,当记录项中存在信心值低于第二预设阈值的数据处理核时,利用所述第一数据处理核替换掉信心值低于所述第二预设阈值的数据处理核。本申请实施例中,每次在接收到第一数据处理核发起的读操作时,都会对历史读记录中记录的数据处理核的信心值进行更新,以保证预测的准确性和可靠性。
结合第一方面实施例的一种可能的实施方式,在获取信心值大于第一预设阈值的数据处理核之前,所述方法还包括:所述主代理获取所有访问所述目的地址的访问操作;基于所述所有访问所述目的地址的访问操作确定所述第一预设阈值。本申请实施例中,基于所有访问目的地址的访问操作来确定第一预设阈值,使其能够准确的反应数据处理核是否需要进行数据预取。
结合第一方面实施例的一种可能的实施方式,所述处理器还连接有一存储芯片,所述方法还包括:若所述主代理基于所述历史读记录没有预测到将使用所述写操作对应的待写入数据的目标数据处理核时,所述主代理确定缓存系统到缓存系统的延时低于缓存系统到所述存储芯片的延时;所述主代理获取各个所述缓存系统的使用情况;所述主代理将所述待写入数据预取到使用情况低于第三预设阈值的缓存系统。本申请实施例中,若基于历史读记录没有预测到将使用待写入数据的目标数据处理核时,若确定缓存系统到缓存系统的延时低于缓存系统到所述存储芯片的延时,主代理获取各个所述缓存系统的使用情况,并将待写入数据预取到使用情况低于第三预设阈值的缓存系统,以此来进一步缩短访存延时。
结合第一方面实施例的一种可能的实施方式,所述处理器还连接有一存储芯片,所述方法还包括:所述主代理在接收到第二数据处理核发起的读操作时,所述主代理确定缓存系统到缓存系统的延时低于缓存系统到所述存储芯片的延时;所述主代理向存储有所述读操作对应的待读取数据的目标缓存系统发起探测操作,所述探测操作中携带有预取数据地址和所述第二数据处理核对应的缓存系统ID,其中,所述第二数据处理核为所述多个数据处理核中的任一数据处理核;所述目标缓存系统响应所述探测操作,从所述预取数据地址处读取预取数据并将其存储到所述缓存系统ID对应的缓存系统。本申请实施例中,在接收到第二数据处理核发起的读操作时,若确定缓存系统到缓存系统的延时低于缓存系统到所述存储芯片的延时,则主代理向存储有读操作对应的待读取数据的目标缓存系统发起探测操作,以便目标缓存系统响应所述探测操作,从预取数据地址处读取预取数据并将其存储到对应的缓存系统,从而进一步缩短访存延时。
结合第一方面实施例的一种可能的实施方式,所述方法还包括:所述主代理在接收到第三数据处理核发起的读操作时,获取用于记录历史访问读操作地址的记录项;若所述读操作中的读地址不在所述记录项中,所述主代理则在所述记录项中记录所述读操作中的读地址。本申请实施例中,在接收到第三数据处理核发起的读操作时,用于记录历史访问读操作地址的记录项,若读操作中的读地址不在记录项中,主代理则在记录项中记录读操作中的读地址,,以便于后续基于记录的历史读记录来预测待写入数据可能会被使用的目标数据处理核,保证方案的连续可实施性。
结合第一方面实施例的一种可能的实施方式,所述主代理则在所述记录项中记录所述读操作中的读地址,包括:若所述记录项存在未记录的空白项,则所述主代理将所述读操作中的读地址写入所述空白项中;若所述记录项不存在未记录的空白项,则所述主代理将基于预设替换规则用所述读操作中的读地址替换所述记录项中的一地址记录。本申请实施例中,若记录项存在未记录的空白项,则直接将读操作中的读地址写入其中即可,若不存在未记录的空白项,则利用预设替换规则将读操作中的读地址替换掉记录项中的一记录,以保证记录项中记录的数据是最新的。
本申请实施例还提供了一种处理器,包括:主代理、多个数据处理核和与所述多个数据处理核一一对应的多个缓存系统;主代理,用于在接收到数据处理核发起的写操作时,获取访问过所述写操作中的目的地址的数据处理核的历史读记录,并基于所述历史读记录预测将使用所述写操作对应的待写入数据的目标数据处理核,向所述目标数据处理核对应的缓存系统发起预取探测请求,所述预取探测请求中携带有预取数据地址;所述目标数据处理核对应的缓存系统,用于响应所述预取探测请求,从所述预取数据地址处读取预取数据,并进行存储。
结合第二方面实施例的一种可能的实施方式,所述主代理,用于获取所述历史读记录中记录的所有数据处理核,并获取所述所有数据处理核中各个数据处理核各自的信心值,所述信心值用于表征数据处理核将使用所述待写入数据的概率;以及获取信心值大于第一预设阈值的数据处理核,其中,所述信心值大于所述第一预设阈值的数据处理核即为所述目标数据处理核。
结合第二方面实施例的一种可能的实施方式,所述主代理,还用于:每次在接收到第一数据处理核发起的读操作时,判断所述历史读记录中是否记录有所述第一数据处理核,所述第一数据处理核为所述多个数据处理核中的任一数据处理核;若所述历史读记录中记录有所述第一数据处理核,则将所述历史读记录中的第一数据处理核的信心值加1;若所述历史读记录中没有记录有所述第一数据处理核,且记录项中有空白项,则将所述第一数据处理核加入所述历史读记录中的空白项;若所述历史读记录中没有记录有所述第一数据处理核,且记录项中没有空白项,则将所有记录项中记录的所有数据处理核各自的信心值减1,当记录项中存在信心值低于第二预设阈值的数据处理核时,利用所述第一数据处理核替换掉信心值低于所述第二预设阈值的数据处理核。
结合第二方面实施例的一种可能的实施方式,所述主代理,还用于在获取信心值大于第一预设阈值的数据处理核之前,获取所有访问所述目的地址的访问操作,并基于所述所有访问所述目的地址的访问操作确定所述第一预设阈值。
结合第二方面实施例的一种可能的实施方式,所述处理器还连接有一存储芯片;若所述主代理基于所述历史读记录没有预测到将使用所述写操作对应的待写入数据的目标数据处理核时,所述主代理还用于确定缓存系统到缓存系统的延时低于缓存系统到所述存储芯片的延时,获取各个所述缓存系统的使用情况,以及将所述待写入数据预取到使用情况低于第三预设阈值的缓存系统。
结合第二方面实施例的一种可能的实施方式,所述处理器还连接有一存储芯片;所述主代理,还用于:在接收到第二数据处理核发起的读操作时,确定缓存系统到缓存系统的延时低于缓存系统到所述存储芯片的延时,向存储有所述读操作对应的待读取数据的目标缓存系统发起探测操作,所述探测操作中携带有预取数据地址和所述第二数据处理核对应的缓存系统ID,其中,所述第二数据处理核为所述多个数据处理核中的任一数据处理核;所述目标缓存系统,用于响应所述探测操作,从所述预取数据地址处读取预取数据并将其存储到所述缓存系统ID对应的缓存系统。
结合第二方面实施例的一种可能的实施方式,所述主代理,还用于在接收到第三数据处理核发起的读操作时,获取用于记录历史访问读操作地址的记录项;若所述读操作中的读地址不在所述记录项中,则在所述记录项中记录所述读操作中的读地址。
结合第二方面实施例的一种可能的实施方式,所述主代理还用于:若所述记录项存在未记录的空白项,则将所述读操作中的读地址写入所述空白项中;若所述记录项不存在未记录的空白项,则基于预设替换规则用所述读操作中的读地址替换所述记录项中的一地址记录。
第三方面,本申请实施例还提供了一种电子设备,包括:本体和上述第二方面实施例和/或结合第二方面实施例的任一种可能的实施方式提供的处理器。
第四方面,本申请实施例还提供了一种存储介质,其上存储有计算机程序,所述计算机程序被处理器运行时,执行上述第一方面实施例和/或结合第一方面实施例的任一种可能的实施方式提供的方法。
本申请的其他特征和优点将在随后的说明书阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请实施例而了解。本申请的目的和其他优点可通过在所写的说明书以及附图中所特别指出的结构来实现和获得。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。通过附图所示,本申请的上述及其它目的、特征和优势将更加清晰。在全部附图中相同的附图标记指示相同的部分。并未刻意按实际尺寸等比例缩放绘制附图,重点在于示出本申请的主旨。
图1示出了现有的通用计算系统架构的结构示意图。
图2示出了本申请实施例提供的通用计算系统架构的结构示意图。
图3示出了本申请实施例提供的一种数据处理方法的流程示意图。
图4示出了本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中诸如“第一”、“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
再者,本申请中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。
鉴于目前通用计算系统架构存在的访问延迟高的问题,本申请实施例提供了一种数据处理方法,可以有效减少通用计算系统架构的访问延迟。为了便于理解,下面将结合图2所示的通用计算系统架构对其进行说明,该通用计算系统架构包括:处理器和存储芯片。其中存储器包括多个数据处理器核、与多个数据处理器核一一对应的缓存系统以及一致性主设备、主代理和访存控制器。其中,数据处理核的缓存系统通过一致性主设备同数据总线相连,数据总线与一致性主代理相连,一致性主代理通过访存控制器同储存芯片相连。本申请实施例中,通过在具有全局视野的主代理中使用探测技术,通过增加探测预取引擎(probe prefetch engine)来进行数据探测预取,以减少访问延迟。
其中,上述的处理器可以是通用处理器,包括中央处理器(Central ProcessingUnit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(DigitalSignal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
该存储芯片可以是,随机存取存储器(Random Access Memory,RAM),动态随机存储器(Dynamic Random Access Memory,DRAM)等。
其中,一致性主设备的作用是将缓存系统的访问请求发送给主代理,并接收主代理返回的结果或发起的探测,并返回给缓存系统。
主代理具有访存系统的整体视野,会监测所有缓存系统的访问,并响应一致性主设备发起的访问请求,将访问结果或发起的探测返回给一致性主设备。例如,主代理在接收到数据处理核(为多个数据处理核中的任一数据处理核)发起的写操作(该写操作经缓存系统及一致性主设备发到主代理)时,获取访问过该写操作中的目的地址的数据处理核的历史读记录,主代理基于该历史读记录预测将使用该写操作对应的待写入数据的目标数据处理核,并向目标数据处理核对应的缓存系统发起预取探测请求(该预取探测请求经一致性主设备、缓存系统发到目标数据处理核),其中预取探测请求中携带有预取数据地址,以使目标数据处理核对应的缓存系统响应该预取探测请求,从预取数据地址处读取预取数据,并进行存储。这样通过将待写入存储芯片(主存)的待写入数据预取到即将要使用该数据的目标数据处理核对应的缓存系统,从而可以在很大程度上缓解访问延迟。
其中,需要说明的是,主代理会记录每一次的读访问请求,以便于在收到写操作时,基于记录的历史读记录来预测待写入数据可能会被使用的目标数据处理核,然后通过探测通知预测的目标数据处理核对应的缓存系统将数据提前取入到目标数据处理核对应的缓存系统。可选地,主代理基于历史读记录预测将使用写操作对应的待写入数据的目标数据处理核的过程可以是:首先获取历史读记录中记录的所有数据处理核,然后获取所有数据处理核中各个数据处理核各自的信心值(信心值用于表征数据处理核将使用待写入数据的概率),然后获取信心值大于第一预设阈值的数据处理核,其中,信心值大于第一预设阈值的数据处理核即为目标数据处理核。也即,通过获取历史读记录中记录的所有数据处理,并获取给自的信心值来决定是否需要发起探测预取,若信心值大于第一预设阈值,则向信心值大于第一预设阈值的数据处理核(即为目标数据处理核)对应的缓存系统发起探测预取请求,进行数据的提前取入,若信心值小于第一预设阈值,则可以正常对该写操作进行处理。
其中,主代理可以通过以下方式来更新信心值:主代理每次在接收到第一数据处理核(第一数据处理核为多个数据处理核中的任一数据处理核)发起的读操作时,判断历史读记录中是否记录有第一数据处理核,(1)若历史读记录中记录有第一数据处理核,则将历史读记录中的第一数据处理核的信心值加1;(2)若历史读记录中没有记录有第一数据处理核,且记录项中有空白项,则将第一数据处理核加入历史读记录中的空白项;(3)若历史读记录中没有记录有第一数据处理核,且记录项中没有空白项,则将所有记录项中记录的所有数据处理核各自的信心值减1,当记录项中存在信心值低于第二预设阈值(如0)的数据处理核时,再利用第一数据处理核替换掉信心值低于第二预设阈值的数据处理核。例如,假设历史读记录中没有记录有第一数据处理核,且记录项中没有空白项,第一数据处理核为core0,历史读记录中没有记录有core1、core2、core5三个处理器核,给自的信心值为3、4、2,在收到第一数据处理核发起的读操作时,由于历史读记录中没有记录有第一数据处理核,且记录项中没有空白项,因此将core1、core2、core5各自的信心值减1,变更为2、3、1,再次收到第一数据处理核发起的读操作时,由于历史读记录中没有记录有第一数据处理核,且记录项中没有空白项,因此将core1、core2、core5各自的信心值减1,变更为1、2、0,此时用core0替换core5。
其中,一种实施方式下,上述的第一预设阈值可以是主代理通过获取所有访问目的地址的访问操作(包括写操作以及读操作),并基于获取的所有访问目的地址的访问操作来确定的,也即主代理通过历史访问过该目的地址的访问操作来进行预测。例如,预测出该数值为7。另外也可以是通过经验知识来设定。
此外,除了通过信心值的方式来预测将使用写操作对应的待写入数据的目标数据处理核外,还可以直接基于历史读记录来建立预测模块,预测出隐藏的关联关系,然后以此来预测将使用写操作对应的待写入数据的目标数据处理核。
若主代理基于历史读记录没有预测到将使用写操作对应的待写入数据的目标数据处理核时,一种实施方式下,主代理获取各个缓存系统的使用情况,将所述待写入数据预取到使用情况低于第三预设阈值(如50%)的缓存系统。以便于下次直接从该缓存系统中读取数据。其中,将待写入数据预取到使用情况低于第三预设阈值的缓存系统之前,还要确定缓存系统到缓存系统的延时低于缓存系统到存储芯片的延时,这样可以减少延时。其中,主代理通过监控来自每个数据处理器核的访存请求,统计并计算每个缓存系统的使用情况,该使用情况包括但不限于对于整个缓存系统使用的空满程度,对于组相联(set-associative)缓存,看其中的单个缓存组使用的空满情况、单个地址范围内所有缓存组的空满情况等。组相联缓存是指将当前缓存系统可以访问的地址空间按照特定的划分方式划分为多个组(set),每个组对应的地址访问在缓存系统中可以存放在多个路(way)中,通过每个路的标志域(tag)来区分同一组内的不同缓存数据。
可选地,一种实施方式下,主代理在接收到第二数据处理核(第二数据处理核为多个数据处理核中的任一数据处理核)发起的读操作时,若至少一个缓存系统中存储有读操作对应的待读取数据,则主代理向存储有待读取数据的目标缓存系统发起探测操作,探测操作中携带有预取数据地址和第二数据处理核对应的缓存系统ID,以使目标缓存系统响应该探测操作,从预取数据地址处读取预取数据并将其存储到缓存系统ID对应的缓存系统。其中,可选地,主代理向存储有待读取数据的目标缓存系统发起探测操作之前,需要先缓存系统到缓存系统的延时低于缓存系统到存储芯片的延时。这样,第二数据处理核便不用从存储芯片处获取该待读取数据,而是从延时更短的缓存系统中获取待读取数据。
主代理还用于在接收到第三数据处理核(为多个数据处理核中的任一数据处理核)发起的读操作时,则获取用于记录历史访问读操作地址的记录项(记录项用于记录访问读操作地址的历史记录);若第三数据处理核发起的读操作中的读地址不在该记录项中,主代理则在记录项中记录该读操作中的读地址。例如,若当前读操作中的读地址为A1,则处理器去查看历史读记录中是否记录有从A1处读取数据的记录,若没有,则在记录项中记录该读地址A1。其中,若记录项存在未记录的空白项,则主代理将读操作中的读地址记录在空白项中;若记录项不存在未记录的空白项,则主代理将基于预设替换规则将读操作中的读地址替换记录项的一现有地址记录。该预设替换规则可以是随机替换算法、最近最少使用算法(Least Recently Used,LRU)、伪最近最少使用算法(Pseudo Least Recently Used,PLRU),这些替换算法已经为本领域所熟知,在此不作过多介绍。其中,一个读地址对应一个记录项,每个读地址对应的记录项中会记录访问该地址的各个处理器核号。例如,读地址A2对应的记录项种记录有访问过该地址A2的处理器核号为core1、core3。
其中,需要说明的是,上述的第一数据处理核、第二数据处理核、第三数据处理核可以是不同的数据处理器核,也可以是同一个数据处理器核。
下面将结合图3,对本申请实施例提供的数据处理方法进行说明。
步骤S101:所述主代理在接收到数据处理核发起的写操作时,获取访问过所述写操作中的目的地址的数据处理核的历史读记录。
主代理具有访存系统的整体视野,会监测所有缓存系统的访问,当接收到数据处理核发起的写操作时,获取访问过所述写操作中的目的地址的数据处理核的历史读记录。其中,主代理会记录每一次的读访问请求,例如在接收到第三数据处理核(为所述多个数据处理核中的任一数据处理核)发起的读操作时,获取用于记录历史访问读操作地址的记录项,若所述读操作中的读地址不在所述记录项中,所述主代理则在所述记录项中记录所述读操作中的读地址。所述主代理则在记录项中记录所述读操作中的读地址的过程可以是:若所述记录项存在未记录的空白项,则所述主代理将所述读操作中的读地址写入所述空白项中;若所述记录项不存在未记录的空白项,则所述主代理将基于预设替换规则用所述读操作中的读地址替换所述记录项中的一地址记录。
步骤S102:所述主代理基于所述历史读记录预测将使用所述写操作对应的待写入数据的目标数据处理核。
所述主代理基于所述历史读记录预测将使用所述写操作对应的待写入数据的目标数据处理核。
一种实施方式下,该过程可以是:获取所述历史读记录中记录的所有数据处理核;获取所述所有数据处理核中各个数据处理核各自的信心值,所述信心值用于表征数据处理核将使用所述待写入数据的概率;获取信心值大于第一预设阈值的数据处理核,其中,所述信心值大于所述第一预设阈值的数据处理核即为所述目标数据处理核。
在获取信心值大于第一预设阈值的数据处理核之前,还包括通过以下方式确定第一预设阈值:所述主代理获取所有访问所述目的地址的访问操作;基于所述所有访问所述目的地址的访问操作确定所述第一预设阈值。
其中,可以通过以下方式更新信心值:所述主代理每次在接收到第一数据处理核发起的读操作时,判断所述历史读记录中是否记录有所述第一数据处理核,所述第一数据处理核为所述多个数据处理核中的任一数据处理核;若所述历史读记录中记录有所述第一数据处理核,则将所述历史读记录中的第一数据处理核的信心值加1;若所述历史读记录中没有记录有所述第一数据处理核,且记录项中有空白项,则将所述第一数据处理核加入所述历史读记录中的空白项;若所述历史读记录中没有记录有所述第一数据处理核,且记录项中没有空白项,则将所有记录项中记录的所有数据处理核各自的信心值减1,当记录项中存在信心值低于第二预设阈值的数据处理核时,利用所述第一数据处理核替换掉信心值低于所述第二预设阈值的数据处理核。
另一种实施方式下,该过程可以是直接基于历史读记录来建立预测模块,预测出隐藏的关联关系,然后以此来预测将使用写操作对应的待写入数据的目标数据处理核。
步骤S103:所述主代理向所述目标数据处理核对应的缓存系统发起预取探测请求,所述预取探测请求中携带有预取数据地址。
主代理在基于所述历史读记录预测将使用所述写操作对应的待写入数据的目标数据处理核后,向所述目标数据处理核对应的缓存系统发起预取探测请求,所述预取探测请求中携带有预取数据地址。
步骤S104:所述目标数据处理核对应的缓存系统响应所述预取探测请求,从所述预取数据地址处读取预取数据,并进行存储。
目标数据处理核对应的缓存系统响应所述预取探测请求,从所述预取数据地址处读取预取数据,并进行存储,也即将该数据存储到所述目标数据处理核对应的缓存系统,通过提前将数据取入,从而减少访问延时。
可选地,若所述主代理基于所述历史读记录没有预测到将使用所述写操作对应的待写入数据的目标数据处理核时,所述主代理获取各个所述缓存系统的使用情况;所述主代理将所述待写入数据预取到使用情况低于第三预设阈值的缓存系统。可选地,在所述主代理将所述待写入数据预取到使用情况低于第三预设阈值的缓存系统之前,所述主代理需要先确定缓存系统到缓存系统的延时低于缓存系统到所述存储芯片的延时。
可选地,所述方法还包括:所述主代理在接收到第二数据处理核发起的读操作时,若至少一个缓存系统中存储有所述读操作对应的待读取数据,所述主代理向存储有所述待读取数据的目标缓存系统发起探测操作,所述探测操作中携带有预取数据地址和所述第二数据处理核对应的缓存系统ID,其中,所述第二数据处理核为所述多个数据处理核中的任一数据处理核;所述目标缓存系统响应所述探测操作,从所述预取数据地址处读取预取数据并将其存储到所述缓存系统ID对应的缓存系统。
本申请实施例所提供的数据处理方法,其实现原理及产生的技术效果和前述装置实施例相同,为简要描述,方法实施例部分未提及之处,可参考前述装置实施例中相应内容。
如图4所示,图4示出了本申请实施例提供的一种电子设备200的结构框图。所述电子设备200包括:收发器210、存储器220、通讯总线230以及上述处理器240。
所述收发器210、所述存储器220、处理器240各元件相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线230或信号线实现电性连接。其中,收发器210用于收发数据。存储器220用于存储计算机程序,包括至少一个可以软件或固件(firmware)的形式存储于所述存储器220中或固化在所述电子设备200的操作系统(operating system,OS)中的软件功能模块。所述处理器240,用于执行存储器220中存储的可执行模块包括的软件功能模块或计算机程序。
处理器240可能是一种集成电路芯片,具有信号的处理能力。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器240也可以是任何常规的处理器等。
其中,上述的电子设备200,包括但不限于计算机、服务器等。
本申请实施例还提供了一种非易失性计算机可读取存储介质(以下简称存储介质),该存储介质上存储有计算机程序,该计算机程序被计算机如上述的电子设备200运行时,执行上述所示的数据处理方法。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,笔记本电脑,服务器,或者电子设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。
Claims (15)
1.一种数据处理方法,其特征在于,应用于处理器,所述处理器包括:主代理、多个数据处理核和与所述多个数据处理核一一对应的多个缓存系统;所述方法包括:
所述主代理在接收到数据处理核发起的写操作时,获取访问过所述写操作中的目的地址的数据处理核的历史读记录;
所述主代理基于所述历史读记录预测将使用所述写操作对应的待写入数据的目标数据处理核;
所述主代理向所述目标数据处理核对应的缓存系统发起预取探测请求,所述预取探测请求中携带有预取数据地址;
所述目标数据处理核对应的缓存系统响应所述预取探测请求,从所述预取数据地址处读取预取数据,并进行存储。
2.根据权利要求1所述的方法,其特征在于,所述主代理基于所述历史读记录预测将使用所述写操作对应的待写入数据的目标数据处理核,包括:
获取所述历史读记录中记录的所有数据处理核;
获取所述所有数据处理核中各个数据处理核各自的信心值,所述信心值用于表征数据处理核将使用所述待写入数据的概率;
获取信心值大于第一预设阈值的数据处理核,其中,所述信心值大于所述第一预设阈值的数据处理核即为所述目标数据处理核。
3.根据权利要求2所述的方法,其特征在于,通过以下方式来更新所述信心值:
所述主代理每次在接收到第一数据处理核发起的读操作时,判断所述历史读记录中是否记录有所述第一数据处理核,所述第一数据处理核为所述多个数据处理核中的任一数据处理核;
若所述历史读记录中记录有所述第一数据处理核,则将所述历史读记录中的第一数据处理核的信心值加1;
若所述历史读记录中没有记录有所述第一数据处理核,且记录项中有空白项,则将所述第一数据处理核加入所述历史读记录中的空白项;
若所述历史读记录中没有记录有所述第一数据处理核,且记录项中没有空白项,则将所有记录项中记录的所有数据处理核各自的信心值减1,当记录项中存在信心值低于第二预设阈值的数据处理核时,利用所述第一数据处理核替换掉信心值低于所述第二预设阈值的数据处理核。
4.根据权利要求2所述的方法,其特征在于,在获取信心值大于第一预设阈值的数据处理核之前,所述方法还包括:
所述主代理获取所有访问所述目的地址的访问操作;
基于所述所有访问所述目的地址的访问操作确定所述第一预设阈值。
5.根据权利要求1所述的方法,其特征在于,所述处理器还连接有一存储芯片,所述方法还包括:
若所述主代理基于所述历史读记录没有预测到将使用所述写操作对应的待写入数据的目标数据处理核时,所述主代理确定缓存系统到缓存系统的延时低于缓存系统到所述存储芯片的延时;
所述主代理获取各个所述缓存系统的使用情况;
所述主代理将所述待写入数据预取到使用情况低于第三预设阈值的缓存系统。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述主代理在接收到第三数据处理核发起的读操作时,获取用于记录历史访问读操作地址的记录项;
若所述读操作中的读地址不在所述记录项中,所述主代理则在所述记录项中记录所述读操作中的读地址。
7.根据权利要求6所述的方法,其特征在于,所述主代理则在所述记录项中记录所述读操作中的读地址,包括:
若所述记录项存在未记录的空白项,则所述主代理将所述读操作中的读地址写入所述空白项中;
若所述记录项不存在未记录的空白项,则所述主代理将基于预设替换规则用所述读操作中的读地址替换所述记录项中的一地址记录。
8.一种处理器,其特征在于,所述处理器包括:
多个数据处理核和与所述多个数据处理核一一对应的多个缓存系统;
主代理,用于在接收到数据处理核发起的写操作时,获取访问过所述写操作中的目的地址的数据处理核的历史读记录,并基于所述历史读记录预测将使用所述写操作对应的待写入数据的目标数据处理核,向所述目标数据处理核对应的缓存系统发起预取探测请求,所述预取探测请求中携带有预取数据地址;
所述目标数据处理核对应的缓存系统,用于响应所述预取探测请求,从所述预取数据地址处读取预取数据,并进行存储。
9.根据权利要求8所述的处理器,其特征在于,所述主代理,用于获取所述历史读记录中记录的所有数据处理核,并获取所述所有数据处理核中各个数据处理核各自的信心值,所述信心值用于表征数据处理核将使用所述待写入数据的概率;以及获取信心值大于第一预设阈值的数据处理核,其中,所述信心值大于所述第一预设阈值的数据处理核即为所述目标数据处理核。
10.根据权利要求9所述的处理器,其特征在于,所述主代理,还用于:每次在接收到第一数据处理核发起的读操作时,判断所述历史读记录中是否记录有所述第一数据处理核,所述第一数据处理核为所述多个数据处理核中的任一数据处理核;若所述历史读记录中记录有所述第一数据处理核,则将所述历史读记录中的第一数据处理核的信心值加1;若所述历史读记录中没有记录有所述第一数据处理核,且记录项中有空白项,则将所述第一数据处理核加入所述历史读记录中的空白项;若所述历史读记录中没有记录有所述第一数据处理核,且记录项中没有空白项,则将所有记录项中记录的所有数据处理核各自的信心值减1,当记录项中存在信心值低于第二预设阈值的数据处理核时,利用所述第一数据处理核替换掉信心值低于所述第二预设阈值的数据处理核。
11.根据权利要求9所述的处理器,其特征在于,所述主代理,还用于在获取信心值大于第一预设阈值的数据处理核之前,获取所有访问所述目的地址的访问操作,并基于所述所有访问所述目的地址的访问操作确定所述第一预设阈值。
12.根据权利要求8所述的处理器,其特征在于,所述处理器还连接有一存储芯片,若所述主代理基于所述历史读记录没有预测到将使用所述写操作对应的待写入数据的目标数据处理核时,所述主代理,还用于确定缓存系统到缓存系统的延时低于缓存系统到所述存储芯片的延时,获取各个所述缓存系统的使用情况,以及将所述待写入数据预取到使用情况低于第三预设阈值的缓存系统。
13.根据权利要求8所述的处理器,其特征在于,所述主代理,还用于在接收到第三数据处理核发起的读操作时,获取用于记录历史访问读操作地址的记录项;若所述读操作中的读地址不在所述记录项中,则在所述记录项中记录所述读操作中的读地址。
14.根据权利要求13所述的处理器,其特征在于,所述主代理还用于:若所述记录项存在未记录的空白项,则将所述读操作中的读地址写入所述空白项中;若所述记录项不存在未记录的空白项,则基于预设替换规则用所述读操作中的读地址替换所述记录项中的一地址记录。
15.一种电子设备,其特征在于,包括:本体和如权利要求8-14任一项所述的处理器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011184703.6A CN112231243B (zh) | 2020-10-29 | 2020-10-29 | 一种数据处理方法、处理器及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011184703.6A CN112231243B (zh) | 2020-10-29 | 2020-10-29 | 一种数据处理方法、处理器及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112231243A true CN112231243A (zh) | 2021-01-15 |
CN112231243B CN112231243B (zh) | 2023-04-07 |
Family
ID=74122889
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011184703.6A Active CN112231243B (zh) | 2020-10-29 | 2020-10-29 | 一种数据处理方法、处理器及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112231243B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113360094A (zh) * | 2021-06-04 | 2021-09-07 | 重庆紫光华山智安科技有限公司 | 数据预测方法和装置、电子设备及存储介质 |
CN114217861A (zh) * | 2021-12-06 | 2022-03-22 | 海光信息技术股份有限公司 | 数据处理方法及装置、电子装置和存储介质 |
CN115086706A (zh) * | 2022-08-19 | 2022-09-20 | 摩尔线程智能科技(北京)有限责任公司 | 数据缓存方法及芯片 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6014737A (en) * | 1997-11-19 | 2000-01-11 | Sony Corporation Of Japan | Method and system for allowing a processor to perform read bypassing while automatically maintaining input/output data integrity |
US20100223431A1 (en) * | 2007-03-06 | 2010-09-02 | Kosuke Nishihara | Memory access control system, memory access control method, and program thereof |
CN109213694A (zh) * | 2017-06-30 | 2019-01-15 | 伊姆西Ip控股有限责任公司 | 用于缓存管理的方法和设备 |
CN110806942A (zh) * | 2019-11-08 | 2020-02-18 | 广州华多网络科技有限公司 | 数据处理的方法和装置 |
CN111080510A (zh) * | 2019-12-11 | 2020-04-28 | 海光信息技术有限公司 | 数据处理装置、方法、芯片、处理器、设备及存储介质 |
CN111837110A (zh) * | 2018-03-20 | 2020-10-27 | 超威半导体公司 | 基于预取器的推测性动态随机存取存储器读取请求技术 |
-
2020
- 2020-10-29 CN CN202011184703.6A patent/CN112231243B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6014737A (en) * | 1997-11-19 | 2000-01-11 | Sony Corporation Of Japan | Method and system for allowing a processor to perform read bypassing while automatically maintaining input/output data integrity |
US20100223431A1 (en) * | 2007-03-06 | 2010-09-02 | Kosuke Nishihara | Memory access control system, memory access control method, and program thereof |
CN109213694A (zh) * | 2017-06-30 | 2019-01-15 | 伊姆西Ip控股有限责任公司 | 用于缓存管理的方法和设备 |
CN111837110A (zh) * | 2018-03-20 | 2020-10-27 | 超威半导体公司 | 基于预取器的推测性动态随机存取存储器读取请求技术 |
CN110806942A (zh) * | 2019-11-08 | 2020-02-18 | 广州华多网络科技有限公司 | 数据处理的方法和装置 |
CN111080510A (zh) * | 2019-12-11 | 2020-04-28 | 海光信息技术有限公司 | 数据处理装置、方法、芯片、处理器、设备及存储介质 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113360094A (zh) * | 2021-06-04 | 2021-09-07 | 重庆紫光华山智安科技有限公司 | 数据预测方法和装置、电子设备及存储介质 |
CN114217861A (zh) * | 2021-12-06 | 2022-03-22 | 海光信息技术股份有限公司 | 数据处理方法及装置、电子装置和存储介质 |
CN115086706A (zh) * | 2022-08-19 | 2022-09-20 | 摩尔线程智能科技(北京)有限责任公司 | 数据缓存方法及芯片 |
WO2024037650A1 (zh) * | 2022-08-19 | 2024-02-22 | 摩尔线程智能科技(北京)有限责任公司 | 数据缓存 |
Also Published As
Publication number | Publication date |
---|---|
CN112231243B (zh) | 2023-04-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112231243B (zh) | 一种数据处理方法、处理器及电子设备 | |
US20170161194A1 (en) | Page-based prefetching triggered by tlb activity | |
US10599578B2 (en) | Dynamic cache bypassing | |
US20130290643A1 (en) | Using a cache in a disaggregated memory architecture | |
CN113342709B (zh) | 在多处理器系统中访问数据的方法和多处理器系统 | |
US20160062893A1 (en) | Interconnect and method of managing a snoop filter for an interconnect | |
US9122613B2 (en) | Prefetching of data and instructions in a data processing apparatus | |
US8762651B2 (en) | Maintaining cache coherence in a multi-node, symmetric multiprocessing computer | |
CN106897230B (zh) | 用于处理原子更新操作的装置和方法 | |
US8423736B2 (en) | Maintaining cache coherence in a multi-node, symmetric multiprocessing computer | |
US8117399B2 (en) | Processing of coherent and incoherent accesses at a uniform cache | |
JP2016503205A (ja) | スケーラブル競合適応性を有する統計カウンタを実施するシステムおよび方法 | |
JP3071752B2 (ja) | ブリッジ方法、バスブリッジ及びマルチプロセッサシステム | |
US20120159082A1 (en) | Direct Access To Cache Memory | |
US8019939B2 (en) | Detecting data mining processes to increase caching efficiency | |
JP2016506577A (ja) | 更新確率値を格納する共用確率的カウンタを実施するシステムおよび方法 | |
US7058767B2 (en) | Adaptive memory access speculation | |
JP2016502212A (ja) | Numaアウェア統計カウンタを実施するシステムおよび方法 | |
JP2023507292A (ja) | ゼロ値メモリ圧縮 | |
CN113835624A (zh) | 基于异构内存的数据迁移方法及装置 | |
CN114036089B (zh) | 数据处理方法、装置、缓存器、处理器及电子设备 | |
JP2004199677A (ja) | キャッシュを動作させるためのシステム及び方法 | |
CN117609110A (zh) | 一种缓存方法、高速缓存、电子设备及可读存储介质 | |
CN106406745B (zh) | 根据目录信息维护Cache数据一致性的方法及装置 | |
CN114721727B (zh) | 一种处理器、电子设备及多线程共享的指令预取方法 |
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 | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: Industrial incubation-3-8, North 2-204, No. 18, Haitai West Road, Huayuan Industrial Zone, Binhai New Area, Tianjin 300450 Applicant after: Haiguang Information Technology Co.,Ltd. Address before: 100082 industrial incubation-3-8, North 2-204, 18 Haitai West Road, Huayuan Industrial Zone, Haidian District, Beijing Applicant before: Haiguang Information Technology Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |