CN114238182A - 一种处理器、数据处理方法和装置 - Google Patents

一种处理器、数据处理方法和装置 Download PDF

Info

Publication number
CN114238182A
CN114238182A CN202111566629.9A CN202111566629A CN114238182A CN 114238182 A CN114238182 A CN 114238182A CN 202111566629 A CN202111566629 A CN 202111566629A CN 114238182 A CN114238182 A CN 114238182A
Authority
CN
China
Prior art keywords
data
conflict
delay time
data access
module
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
CN202111566629.9A
Other languages
English (en)
Other versions
CN114238182B (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.)
Beijing Eswin Computing Technology Co Ltd
Original Assignee
Beijing Eswin Computing Technology Co 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 Beijing Eswin Computing Technology Co Ltd filed Critical Beijing Eswin Computing Technology Co Ltd
Priority to CN202111566629.9A priority Critical patent/CN114238182B/zh
Publication of CN114238182A publication Critical patent/CN114238182A/zh
Application granted granted Critical
Publication of CN114238182B publication Critical patent/CN114238182B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/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
    • G06F13/161Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
    • 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/0811Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
    • 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
    • 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
    • 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/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/368Handling requests for interconnection or transfer for access to common bus or bus system with decentralised access control
    • G06F13/376Handling requests for interconnection or transfer for access to common bus or bus system with decentralised access control using a contention resolving method, e.g. collision detection, collision avoidance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3824Operand accessing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本申请实施例提供了一种处理器、数据处理方法和装置。该处理器包括:数据请求模块以及数据响应模块;其中,数据响应模块,其配置为在发生数据访问冲突事件的情况下,确定数据访问冲突事件的冲突类型,并向数据请求模块发送冲突类型;数据请求模块,其配置为根据冲突类型,确定与冲突类型对应的延迟时间;并根据延迟时间,重发数据访问冲突事件对应的数据请求。本申请实施例中延迟时间与冲突类型相关联,可以保障基于延迟时间重发的数据请求被及时处理,减少了数据访问冲突对指令流中后续数据请求的影响,提升了CPU的IPC性能。

Description

一种处理器、数据处理方法和装置
技术领域
本申请涉及数据处理领域,具体而言,本申请涉及一种处理器、数据处理方法和装置。
背景技术
超标量CPU(central processing unit,中央处理器)架构是指在一颗处理器内核中实行了指令级并行的一类并行运算。这种技术能够在相同的CPU主频下实现更高的CPU吞吐率。
在超标量CPU中,指令的发射策略是指在指令的发射过程中,所采取的相关检测方法和相关处理措施,决定指令队列中指令的发射顺序,其算法效率的优劣将直接影响超标量处理器的性能。
超标量CPU具备在一个时钟周期执行一个以上指令的能力,当CPU在执行当前指令时出现数据访问冲突事件,现有技术中通常基于固定延时重发当前指令所对应的数据请求,以再次执行该指令;但是多个指令常常存在数据依赖的情况,以固定延时重发数据请求,会降低后续指令流的处理效率,影响CPU的IPC(Inter-Process Communication,进程间通信)性能。
发明内容
本申请实施例提供了一种数据处理方法、装置、电子设备及计算机可读存储介质,可以提升CPU的IPC性能。所述技术方案如下:
根据本申请实施例的一个方面,提供了一种处理器,包括数据请求模块以及数据响应模块;其中,
数据响应模块,其配置为在发生数据访问冲突事件的情况下,确定数据访问冲突事件的冲突类型,并向数据请求模块发送冲突类型;
数据请求模块,其配置为根据冲突类型,确定与冲突类型对应的延迟时间;并根据延迟时间,重发数据访问冲突事件对应的数据请求。
可选的,上述数据请求模块,其配置为基于预设的延迟数据对照表进行查询,得到冲突类型所对应的延迟时间。
可选的,上述处理器,还包括:
延迟数据对照表构建模块,其配置为在处理器中运行至少一个测试程序,当在测试程序的运行过程中检测到数据访问冲突事件时,基于测试程序的运行结果确定数据访问冲突事件对应的冲突类型和目标延迟时间;
基于冲突类型和目标延迟时间构建延迟数据对照表。
可选的,上述延迟数据对照表构建模块,其配置为统计运行各测试程序时生成的数据访问冲突事件,以及数据访问冲突事件所对应的冲突类型;针对每一冲突类型,检测各测试程序的运行数据,得到各测试程序的初始延迟时间;统计初始延迟时间,计算冲突类型所对应的目标延迟时间。
可选的,上述延迟数据对照表构建模块,其配置为计算各初始延迟时间的平均值或者极值,根据平均值或极值得到目标延迟时间。
可选的,上述延迟数据对照表构建模块,其配置为基于冲突类型和目标延迟时间,生成键值对数据;基于键值对数据生成延迟数据对照表。
根据本申请实施例的另一个方面,提供了一种数据处理方法,应用于处理器中,该方法包括:
在发生数据访问冲突事件的情况下,确定数据访问冲突事件的冲突类型;
确定与冲突类型对应的延迟时间;
根据延迟时间,重发数据访问冲突事件对应的数据请求。
可选的,上述确定与冲突类型对应的延迟时间,包括:
基于预设的延迟数据对照表进行查询,得到冲突类型所对应的延迟时间。
可选的,上述方法还包括:
获取至少一个测试程序;
在处理器中运行测试程序,当检测到数据访问冲突事件,基于测试程序的运行结果确定数据访问冲突事件对应的冲突类型和目标延迟时间;
基于冲突类型和目标延迟时间构建延迟数据对照表。
可选的,上述确定数据访问冲突事件对应的冲突类型和目标延迟时间,包括:
统计运行各测试程序时生成的数据访问冲突事件,以及数据访问冲突事件所对应的冲突类型;
针对每一冲突类型,检测各测试程序的运行数据,得到各测试程序的初始延迟时间;
统计初始延迟时间,计算冲突类型所对应的目标延迟时间。
可选的,上述计算冲突类型所对应的目标延迟时间,包括:
计算各初始延迟时间的平均值或者极值,根据平均值或极值得到目标延迟时间。
可选的,上述基于冲突类型和目标延迟时间构建延迟数据对照表,包括:
基于冲突类型和目标延迟时间,生成键值对数据;
基于键值对数据生成延迟数据对照表。
根据本申请实施例的另一个方面,提供了一种数据处理装置,该装置包括:
第一确定模块,用于在发生数据访问冲突事件的情况下,确定数据访问冲突事件的冲突类型;
第二确定模块,用于确定与冲突类型对应的延迟时间;
重发模块,用于根据延迟时间,重发数据访问冲突事件对应的数据请求。
可选的,上述第二确定模块,用于:
基于预设的延迟数据对照表进行查询,得到冲突类型所对应的延迟时间。
可选的,上述装置还包括测试模块,用于:
获取至少一个测试程序;
在处理器中运行测试程序,当检测到数据访问冲突事件,基于测试程序的运行结果确定数据访问冲突事件对应的冲突类型和目标延迟时间;
基于冲突类型和目标延迟时间构建延迟数据对照表。
可选的,上述测试模块,用于:
统计运行各测试程序时生成的数据访问冲突事件,以及数据访问冲突事件所对应的冲突类型;
针对每一冲突类型,检测各测试程序的运行数据,得到各测试程序的初始延迟时间;
统计初始延迟时间,计算冲突类型所对应的目标延迟时间。
可选的,上述测试模块,还用于:
计算各初始延迟时间的平均值或者极值,根据平均值或极值得到目标延迟时间。
可选的,上述测试模块,还用于:
基于冲突类型和目标延迟时间,生成键值对数据;
基于键值对数据生成延迟数据对照表。
根据本申请实施例的另一个方面,提供了一种电子设备,该电子设备包括:存储器、处理器及存储在存储器上的计算机程序,上述处理器执行计算机程序以实现本申请实施例第一方面所示方法的步骤。
根据本申请实施例的再一个方面,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现本申请实施例第一方面所示方法的步骤。
根据本申请实施例的一个方面,提供了一种计算机程序产品,其包括计算机程序,该计算机程序被处理器执行时实现本申请实施例第一方面所示方法的步骤。
本申请实施例提供的技术方案带来的有益效果是:
本申请实施例在发生数据访问冲突事件的情况下,通过确定数据访问冲突事件的冲突类型,进而获取与该冲突类型对应的延迟时间,以便根据延迟时间重发上述数据访问冲突事件所对应的数据请求,并在无数据访问冲突事件的前提下响应于该数据请求,达到了提升数据处理效率的目的;在本申请实施例中,延迟时间与冲突类型相关联,可以保障基于延迟时间重发的数据请求被及时处理,减少了数据访问冲突对指令流中后续数据请求的影响,提升了CPU的IPC性能。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对本申请实施例描述中所需要使用的附图作简单地介绍。
图1为本申请实施例提供的一种处理器的系统架构图;
图2为本申请实施例提供的一种数据处理方法的流程示意图;
图3为本申请实施例提供的一个示例的数据处理方法的流程示意图;
图4为本申请实施例提供的一种数据处理装置的结构示意图;
图5为本申请实施例提供的一种数据处理电子设备的结构示意图。
具体实施方式
下面结合本申请中的附图描述本申请的实施例。应理解,下面结合附图所阐述的实施方式,是用于解释本申请实施例的技术方案的示例性描述,对本申请实施例的技术方案不构成限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本申请实施例所使用的术语“包括”以及“包含”是指相应特征可以实现为所呈现的特征、信息、数据、步骤、操作、元件和/或组件,但不排除实现为本技术领域所支持其他特征、信息、数据、步骤、操作、元件、组件和/或它们的组合等。应该理解,当我们称一个元件被“连接”或“耦接”到另一元件时,该一个元件可以直接连接或耦接到另一元件,也可以指该一个元件和另一元件通过中间元件建立连接关系。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的术语“和/或”指示该术语所限定的项目中的至少一个,例如“A和/或B”可以实现为“A”,或者实现为“B”,或者实现为“A和B”。
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
CPU流水线技术是一种将指令分解为多步,并让不同指令的各步操作重叠,从而实现几条指令并行处理,以加速程序运行过程的技术。指令的每步有各自独立的电路来处理,每完成一步,就进到下一步,而前一步则处理后续指令。
随着大数据处理,云计算,深度学习等应用场景的出现,对处理器设计的性能的需求提出了更高的挑战,高性能一直是处理器领域最热门的话题。目前市面上绝大部分处理都是超标量处理器,在数据访问冲突后,一种典型的场景是数据请求发出后,后备执行单元返回NACK,而针对NACK对应的数据请求的重发,一般机制数是等到访问流量减小有空闲,或固定延时后重发。此种处理机制存在一些弊端,特别的,对于指令流在存在数据依赖的情况下,越早的指令可能被后续的指令依赖,会降低指令流的处理效率,影响处理器中各硬件单元的通信速率,造成处理器的硬件利用率降低。
本申请提供的数据处理方法、装置、电子设备以及计算机可读存储介质,旨在解决现有技术的如上技术问题。
下面通过对几个示例性实施方式的描述,对本申请实施例的技术方案以及本申请的技术方案产生的技术效果进行说明。需要指出的是,下述实施方式之间可以相互参考、借鉴或结合,对于不同实施方式中相同的术语、相似的特征以及相似的实施步骤等,不再重复描述。
本申请实施例中提供了一种数据处理方法,该方法应用在处理器中,如图1所示,该处理器包括数据请求模块以及数据响应模块。如图2所示,该方法包括如下步骤。
S201,数据响应模块在发生数据访问冲突事件的情况下,确定数据访问冲突事件的冲突类型,并向数据请求模块发送冲突类型。
具体的,在处理器内部指令运行阶段,数据响应模块监测执行指令时是否发生数据访问冲突事件。当发生了数据访问冲突事件,则确定该数据访问冲突事件的冲突类型。可选地,冲突类型可以包括Cache冲突和bank冲突。
其中,通信交互数据可以包括:数据请求模块发送的数据请求,数据响应模块响应于数据请求的正向反馈消息和/或负向反馈消息。具体的,当查询得到NACK消息,则判断发生了数据访问冲突事件。
Cache存储器是位于CPU和主存储器DRAM(Dynamic Random Access Memory,动态随机存取存储器)之间的存储器,其规模较小,但速度很高,通常由SRAM(Static RandomAccess Memory静态存储器)组成。Cache的功能是提高CPU数据输入输出的速率。CPU的速度远高于内存,当CPU直接从内存中存取数据时要等待一定时间周期,而Cache则可以保存CPU刚用过或循环使用的一部分数据,如果CPU需要再次使用该部分数据时可从Cache中直接调用,这样就避免了重复存取数据,减少了CPU的等待时间,因而提高了系统的效率。Cache又分为L1Cache(一级缓存)和L2Cache(二级缓存),L1Cache主要是集成在CPU内部,而L2Cache集成在主板上或是CPU上。
共享存储器用于实现相互通信的进程之间共享某些数据结构或存储区,并进行数据交换或传递。为了获得较高的内存带宽,共享存储器通常被划分为多个大小相等的存储器模块,称为bank(内存库),多个bank可以被同时访问。因此,任何跨越b个不同bank的n个地址的读写操作可以被同时进行,这样就提高了整体带宽,可达到单独一个bank带宽的b倍;其中,b、n为正整数。
在本申请实施例中,当CPU需要从Cache中获取目标数据,CPU会向Cache发送与目标数据对应的数据请求,当Cache基于该数据请求没有找到对应的目标数据时,会返回一个NACK消息给CPU;此时,可以根据该NACK消息判断发生了数据访问冲突事件,并确定数据访问冲突事件对应的冲突类型为Cache冲突。
当GPU基于warp(线程束)中的不同线程访问共享存储器的一个bank中的不同的字地址时,共享存储器就会向GPU返回一个NACK消息,可以根据该NACK消息判断发生了数据访问冲突事件,并确定数据访问冲突事件对应的冲突类型为bank冲突。
S202,数据请求模块根据冲突类型,确定与冲突类型对应的延迟时间。
其中,上述延迟时间可以基于测试程序针对对应的冲突类型测试得到。
具体的,可以预先构建冲突类型与延迟时间的对应关系,并基于该对应关系确定与冲突类型对应的延迟时间。本申请中,延迟时间与冲突类型相关联,可以保障基于延迟时间重发的数据请求被及时处理,减少了数据访问冲突对指令流中后续数据请求的影响。
在本申请实施例中,当CPU需要从Cache中获取目标数据,CPU会向Cache发送与目标数据对应的数据请求,当Cache基于该数据请求没有找到对应的目标数据时,会返回一个NACK消息给CPU;此时,可以根据该NACK消息判断发生了数据访问冲突事件,并确定数据访问冲突事件对应的冲突类型为Cache冲突。此时,可以基于该Cache冲突查询得到对应的延迟时间为4个时钟周期。
S203,数据请求模块根据延迟时间,重发数据访问冲突事件对应的数据请求。
具体的,数据请求模块可以在等待延迟时间之后,重发数据访问冲突事件对应的数据请求。
在本申请实施例中,当CPU需要从Cache中获取目标数据,CPU会向Cache发送与目标数据对应的数据请求,当Cache基于该数据请求没有找到对应的目标数据时,会返回一个NACK消息给CPU;此时,可以根据该NACK消息判断发生了数据访问冲突事件,并确定数据访问冲突事件对应的冲突类型为Cache冲突。此时,可以基于该Cache冲突查询得到对应的延迟时间为4个时钟周期。于是,在等待4个时钟周期之后,CPU再次向Cache发送与目标数据对应的数据请求,以使得Cache对该数据请求做出正确响应,并返回ACK消息给CPU。
本申请实施例在发生数据访问冲突事件的情况下,通过确定数据访问冲突事件的冲突类型,进而获取与该冲突类型对应的延迟时间,以便根据延迟时间重发上述数据访问冲突事件所对应的数据请求,并在无数据访问冲突事件的前提下响应于该数据请求,达到了提升数据处理效率的目的。在本申请实施例中,延迟时间与冲突类型相关联,可以保障基于延迟时间重发的数据请求被及时处理,减少了数据访问冲突对指令流中后续数据请求的影响,提升了CPU的IPC性能。
本申请实施例中提供了一种可能的实现方式,上述步骤S202中的确定与冲突类型对应的延迟时间,包括:基于预设的延迟数据对照表进行查询,得到冲突类型所对应的延迟时间。
其中,上述延迟数据对照表,是基于各冲突类型与预设的测试程序经过测试得到的;延迟数据对照表的构建方式将在下文详细说明。
本申请实施例中提供了一种可能的实现方式,处理器还包括延迟数据对照表构建模块,该模块通过下面的步骤来构建延迟数据对照表:
(1)获取至少一个测试程序。
其中,测试程序可以是SPEC CPU 2017中的基准测试源代码。
SPEC CPU 2017是一套CPU子系统测试工具。SPEC CPU2017基准测试及其运行规则的目的是进一步促进公平和客观的CPU基准测试。这些规则有助于确保公布的结果具有意义,并且可重复。
SPEC(Standard Performance Evaluation Corporation,标准性能评估组织)以源代码的形式提供CPU2017基准测试,除非在某些非常有限的情况下,测试人员不允许修改。SPEC CPU2017包括43个基准,分为4个套件:SPECspeed 2017Integer,有10个基准;SPECrate 2017Integer,有10个基准;SPECspeed 2017浮点,有10个基准;SPECrate2017年浮点,有13个基准。
(2)在处理器中运行测试程序,当在测试程序的运行过程中检测到数据访问冲突事件时,基于测试程序的运行结果确定数据访问冲突事件对应的冲突类型和目标延迟时间。
在本申请实施例中,可以在处理器上运行测试程序,并检测程序运行时所发生的数据访问冲突事件,当判断发生数据访问冲突事件,则根据测试程序的运行结果统计该数据访问冲突事件对应的冲突类型和延迟时间,并确定各冲突类型对应的目标延迟时间。其中,预设的处理器可以包括CPU以及Cache、寄存器等与CPU对应的数据交互节点。
本申请实施例中提供了一种可能的实现方式,上述确定数据访问冲突事件对应的冲突类型和目标延迟时间,包括执行后面的a、b、c步骤:
a、统计运行各测试程序时生成的数据访问冲突事件,以及数据访问冲突事件所对应的冲突类型。
具体的,延迟数据对照表构建模块,可以基于测试程序的运行日志,统计数据访问冲突事件的数量,并确定各数据访问冲突事件所对应的冲突类型。
在一些实施方式中,当CPU需要从Cache中获取目标数据,CPU会向Cache发送与目标数据对应的数据请求,当Cache基于该数据请求没有找到对应的目标数据时,会返回一个NACK消息给CPU;此时,可以根据该NACK消息判断发生了数据访问冲突事件,并确定数据访问冲突事件对应的冲突类型为Cache冲突。
可选的,一个Cache被分为多个组,每个组对应多个Cacheline,每个Cacheline可以对应多个存储单元以进行内存映射。write-back策略是Cache中的一个写机制,当CPU将一个新值写入L1 cache时并不会将内容传播到更低层次的存储中,当其他数据交互节点访问该值时再写入低层次缓存,以提高CPU的执行效率。
通常情况下,如果发生Cache miss(丢失),Cache的访问都会被阻塞掉,等待缺失值从更低层次的存储中取回。非阻塞Cache的引入需要引入额外的硬件来存储Cache miss的相关信息,使得Cache可以继续处理Cache miss。这里所说的额外硬件被称为MSHR(MissStatus Handling Registers),用来保存待处理Cache miss对应的地址、Cache中的目标块以及目标寄存器。
Cache冲突可以包括以下几种:
当CPU向Cache发送数据请求,Cache基于该数据请求的访问地址解析出对应的Cacheline,但该Cacheline与Cache中write-back写数据对应的Cacheline是同一个,此时会发生write-back数据冲突。
当CPU向Cache发送数据请求,Cache基于该数据请求的访问地址解析出对应的Cacheline,但该Cacheline与总线上驱动注册的probe函数对应的Cacheline是同一个,此时会发生probe数据冲突。
当CPU向Cache发送数据请求时发生了Cache miss,但此时没有空闲的MSHR来处理Cache miss,此时会发生MSHR数据冲突。
当CPU向Cache发送数据请求,Cache基于该数据请求的访问地址解析出对应的Cacheline和Cacheline对应物理地址的index 1,但此时MSHR请求中对应的Cacheline中的index 2与index 1相同,但是两个Cacheline分别对应的内存地址的tag不同,此时会发生tag数据冲突。
在另一些实施方式中,当GPU基于warp(线程束)中的不同线程访问共享存储器的一个bank中的不同的字地址时,共享存储器就会向GPU返回一个NACK消息,可以根据该NACK消息判断发生了数据访问冲突事件,并确定数据访问冲突事件对应的冲突类型为bank冲突。
b、针对每一冲突类型,检测各测试程序的运行数据,得到各测试程序的初始延迟时间。
在本申请实施例中,可以基于测试程序对预设的处理器进行测试,确定发生了5次bank冲突,并统计每次bank冲突对应的初始延迟时间包括:4个、3个、3个、5个、5个时钟周期。
c、统计初始延迟时间,计算冲突类型所对应的目标延迟时间。
具体的,延迟数据对照表构建模块可以根据各初始延迟时间进行统计,得到目标延迟时间。具体的计算过程将在下文详细介绍。
本申请实施例中提供了一种可能的实现方式,上述计算冲突类型所对应的目标延迟时间,包括:计算各初始延迟时间的平均值或者极值,根据平均值或极值得到目标延迟时间。
在一些实施方式中,延迟数据对照表构建模块可以统计各初始延迟时间的平均值得到目标延迟时间;在另一些实施方式中,延迟数据对照表构建模块可以统计各初始延迟时间的最大值或最小值,作为该冲突类型对应的目标延迟时间。
在本申请实施例中,延迟数据对照表构建模块,可以基于测试程序对预设的处理器进行测试,确定发生了5次bank冲突,并统计每次bank冲突对应的初始延迟时间包括:4个、3个、3个、5个、5个时钟周期。可以根据上述初始延迟时间计算均值,得到bank冲突对应的目标延迟时间为4个时钟周期。
(3)基于冲突类型和目标延迟时间构建延迟数据对照表。
本申请实施例中提供了一种可能的实现方式,上述基于冲突类型和目标延迟时间构建延迟数据对照表,包括:基于冲突类型和目标延迟时间,生成键值对数据;基于键值对数据生成延迟数据对照表。
其中,每一冲突类型对应一目标延迟时间。具体的,延迟数据对照表构建模块可以根据键值对数据的数量,确定键值对数据的存储空间,并将上述延迟数据对照表存储至上述存储空间。
在本申请实施例中,延迟数据对照表构建模块可以通过查询该延迟数据对照表,获取冲突类型对应的目标延迟时间。由于各目标延迟时间是根据各冲突类型的特点设置的最优时间,故可以进一步提高数据访问的成功率,提升了处理器的数据处理效率和性能。
为了更好的理解上述数据处理方法,下面结合图3详细阐述一个本申请的数据处理方法的示例,应用于处理器中,该处理器包括数据请求模块、数据响应模块以及延迟数据对照表构建模块,上述方法包括如下步骤:
S301,延迟数据对照表构建模块获取至少一个测试程序。
其中,测试程序可以是SPEC CPU 2017中的基准测试源代码。
S302,在处理器中运行测试程序,当检测到数据访问冲突事件,基于测试程序的运行结果确定数据访问冲突事件对应的冲突类型和目标延迟时间。
在本申请实施例中,延迟数据对照表构建模块可以基于预设处理器运行测试程序,并检测程序运行时所发生的数据访问冲突事件,当判断发生数据访问冲突事件,则根据测试程序的运行结果统计该数据访问冲突事件对应的冲突类型和延迟时间,并确定各冲突类型对应的目标延迟时间。其中,处理器包括CPU以及Cache、寄存器等与CPU对应的数据交互节点。
S303,基于冲突类型和目标延迟时间构建延迟数据对照表。
具体的,延迟数据对照表构建模块可以基于冲突类型和目标延迟时间,生成键值对数据;基于键值对数据生成延迟数据对照表。
其中,每一冲突类型对应一目标延迟时间。具体的,可以键值对数据的数量,确定键值对数据的存储空间,并将延迟数据对照表存储至上述存储空间。
S304,数据响应模块在发生数据访问冲突事件的情况下,确定数据访问冲突事件的冲突类型。
具体的,数据响应模块可以检测数据发送节点和数据接收节点之间的通信交互数据,并基于通信交互数据判断是否发生了数据访问冲突事件;当发生数据访问冲突事件,则确定该数据访问冲突事件的冲突类型。
S305,数据请求模块基于延迟数据对照表进行查询,得到冲突类型所对应的延迟时间。
其中,上述延迟数据对照表是基于各冲突类型与预设的测试程序经过测试得到的。
S306,根据延迟时间,重发数据访问冲突事件对应的数据请求。
具体的,数据请求模块可以在等待延迟时间之后,重发数据访问冲突事件对应的数据请求。
在本申请实施例中,以冲突类型为Cache冲突为例进行说明,当CPU需要从Cache中获取目标数据,CPU会向Cache发送与目标数据对应的数据请求,当Cache基于该数据请求没有找到对应的目标数据时,会返回一个NACK消息给CPU;此时,可以根据该NACK消息判断发生了数据访问冲突事件,并确定数据访问冲突事件对应的冲突类型为Cache冲突。此时,可以基于该Cache冲突查询得到对应的延迟时间为4个时钟周期。于是,在等待4个时钟周期之后,CPU再次向Cache发送与目标数据对应的数据请求,以使得Cache对该数据请求做出正确响应,并返回ACK消息给CPU。
本申请实施例在发生数据访问冲突事件的情况下,通过确定数据访问冲突事件的冲突类型,进而获取与该冲突类型对应的延迟时间,以便根据延迟时间重发上述数据访问冲突事件所对应的数据请求,并在无数据访问冲突事件的前提下响应于该数据请求,达到了提升数据处理效率的目的;在本申请实施例中,延迟时间与冲突类型相关联,可以保障基于延迟时间重发的数据请求被及时处理,减少了数据访问冲突对指令流中后续数据请求的影响,提升了CPU的IPC性能。
本申请实施例提供了一种数据处理装置,如图4所示,该数据处理装置40可以包括:第一确定模块401、第二确定模块402和重发模块403;
其中,第一确定模块401,用于在发生数据访问冲突事件的情况下,确定数据访问冲突事件的冲突类型;
第二确定模块402,用于确定与冲突类型对应的延迟时间;
重发模块403,用于根据延迟时间,重发数据访问冲突事件对应的数据请求。
本申请实施例中提供了一种可能的实现方式,上述第二确定模块402,用于:
基于预设的延迟数据对照表进行查询,得到冲突类型所对应的延迟时间。
本申请实施例中提供了一种可能的实现方式,上述装置还包括测试模块,用于:
获取至少一个测试程序;
在处理器中运行测试程序,当检测到数据访问冲突事件,基于测试程序的运行结果确定数据访问冲突事件对应的冲突类型和目标延迟时间;
基于冲突类型和目标延迟时间构建延迟数据对照表。
本申请实施例中提供了一种可能的实现方式,上述测试模块,用于:
统计运行各测试程序时生成的数据访问冲突事件,以及数据访问冲突事件所对应的冲突类型;
针对每一冲突类型,检测各测试程序的运行数据,得到各测试程序的初始延迟时间;
统计初始延迟时间,计算冲突类型所对应的目标延迟时间。
本申请实施例中提供了一种可能的实现方式,上述测试模块,还用于:
计算各初始延迟时间的平均值或者极值,根据平均值或极值得到目标延迟时间。
本申请实施例中提供了一种可能的实现方式,上述测试模块,还用于:
基于冲突类型和目标延迟时间,生成键值对数据;
基于键值对数据生成延迟数据对照表。
本申请实施例的装置可执行本申请实施例所提供的方法,其实现原理相类似,本申请各实施例的装置中的各模块所执行的动作是与本申请各实施例的方法中的步骤相对应的,对于装置的各模块的详细功能描述具体可以参见前文中所示的对应方法中的描述,此处不再赘述。
本申请实施例在发生数据访问冲突事件的情况下,通过确定数据访问冲突事件的冲突类型,进而获取与该冲突类型对应的延迟时间,以便根据延迟时间重发上述数据访问冲突事件所对应的数据请求,并在无数据访问冲突事件的前提下响应于该数据请求,达到了提升数据处理效率的目的;在本申请实施例中,延迟时间与冲突类型相关联,可以保障基于延迟时间重发的数据请求被及时处理,减少了数据访问冲突对指令流中后续数据请求的影响,提升了CPU的IPC性能。
本申请实施例中提供了一种电子设备,包括存储器、处理器及存储在存储器上的计算机程序,该处理器执行上述计算机程序以实现数据处理方法的步骤,与相关技术相比可实现:本申请实施例在发生数据访问冲突事件的情况下,通过确定数据访问冲突事件的冲突类型,进而获取与该冲突类型对应的延迟时间,以便根据延迟时间重发上述数据访问冲突事件所对应的数据请求,并在无数据访问冲突事件的前提下响应于该数据请求,达到了提升数据处理效率的目的;在本申请实施例中,延迟时间与冲突类型相关联,可以保障基于延迟时间重发的数据请求被及时处理,减少了数据访问冲突对指令流中后续数据请求的影响,提升了CPU的IPC性能。
在一个可选实施例中提供了一种电子设备,如图5所示,图5所示的电子设备500包括:处理器501和存储器503。其中,处理器501和存储器503相连,如通过总线502相连。可选地,电子设备500还可以包括收发器504,收发器504可以用于该电子设备与其他电子设备之间的数据交互,如数据的发送和/或数据的接收等。需要说明的是,实际应用中收发器504不限于一个,该电子设备500的结构并不构成对本申请实施例的限定。
处理器501可以是CPU(Central Processing Unit,中央处理器),通用处理器,DSP(Digital Signal Processor,数据信号处理器),ASIC(Application SpecificIntegrated Circuit,专用集成电路),FPGA(Field Programmable Gate Array,现场可编程门阵列)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器501也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等。
总线502可包括一通路,在上述组件之间传送信息。总线502可以是PCI(Peripheral Component Interconnect,外设部件互连标准)总线或EISA(ExtendedIndustry Standard Architecture,扩展工业标准结构)总线等。总线502可以分为地址总线、数据总线、控制总线等。为便于表示,图5中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器503可以是ROM(Read Only Memory,只读存储器)或可存储静态信息和指令的其他类型的静态存储设备,RAM(Random Access Memory,随机存取存储器)或者可存储信息和指令的其他类型的动态存储设备,也可以是EEPROM(Electrically ErasableProgrammable Read Only Memory,电可擦可编程只读存储器)、CD-ROM(Compact DiscRead Only Memory,只读光盘)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质、其他磁存储设备、或者能够用于携带或存储计算机程序并能够由计算机读取的任何其他介质,在此不做限定。
存储器503用于存储执行本申请实施例的计算机程序,并由处理器501来控制执行。处理器501用于执行存储器503中存储的计算机程序,以实现前述方法实施例所示的步骤。
其中,电子设备包括但不限于:诸如移动电话、笔记本电脑、PAD等等移动终端以及诸如数字TV、台式计算机等等固定终端。
本申请实施例提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时可实现前述方法实施例的步骤及相应内容。
本申请实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行时实现如下情况:
在发生数据访问冲突事件的情况下,确定数据访问冲突事件的冲突类型;
确定与冲突类型对应的延迟时间;
根据延迟时间,重发数据访问冲突事件对应的数据请求。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”、“1”、“2”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除图示或文字描述以外的顺序实施。
应该理解的是,虽然本申请实施例的流程图中通过箭头指示各个操作步骤,但是这些步骤的实施顺序并不受限于箭头所指示的顺序。除非本文中有明确的说明,否则在本申请实施例的一些实施场景中,各流程图中的实施步骤可以按照需求以其他的顺序执行。此外,各流程图中的部分或全部步骤基于实际的实施场景,可以包括多个子步骤或者多个阶段。这些子步骤或者阶段中的部分或全部可以在同一时刻被执行,这些子步骤或者阶段中的每个子步骤或者阶段也可以分别在不同的时刻被执行。在执行时刻不同的场景下,这些子步骤或者阶段的执行顺序可以根据需求灵活配置,本申请实施例对此不限制。
以上所述仅是本申请部分实施场景的可选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请的方案技术构思的前提下,采用基于本申请技术思想的其他类似实施手段,同样属于本申请实施例的保护范畴。

Claims (10)

1.一种处理器,其特征在于,包括:数据请求模块以及数据响应模块;其中,
所述数据响应模块,其配置为在发生数据访问冲突事件的情况下,确定所述数据访问冲突事件的冲突类型,并向所述数据请求模块发送所述冲突类型;
所述数据请求模块,其配置为根据所述冲突类型,确定与所述冲突类型对应的延迟时间;并根据所述延迟时间,重发所述数据访问冲突事件对应的数据请求。
2.根据权利要求1所述的处理器,其特征在于,所述数据请求模块,其配置为基于预设的延迟数据对照表进行查询,得到所述冲突类型所对应的延迟时间。
3.根据权利要求2所述的处理器,其特征在于,还包括:
延迟数据对照表构建模块,其配置为在处理器中运行至少一个测试程序,当在测试程序的运行过程中检测到数据访问冲突事件时,基于所述测试程序的运行结果确定所述数据访问冲突事件对应的冲突类型和目标延迟时间;基于所述冲突类型和所述目标延迟时间构建延迟数据对照表。
4.根据权利要求3所述的处理器,其特征在于,所述延迟数据对照表构建模块,其配置为统计运行各所述测试程序时生成的数据访问冲突事件,以及所述数据访问冲突事件所对应的冲突类型;针对每一所述冲突类型,检测各所述测试程序的运行数据,得到各所述测试程序的初始延迟时间;统计所述初始延迟时间,计算所述冲突类型所对应的目标延迟时间。
5.根据权利要求4所述的处理器,其特征在于,所述延迟数据对照表构建模块,其配置为计算各所述初始延迟时间的平均值或者极值,根据所述平均值或所述极值得到所述目标延迟时间。
6.根据权利要求3所述的处理器,其特征在于,所述延迟数据对照表构建模块,其配置为基于所述冲突类型和所述目标延迟时间,生成键值对数据;基于所述键值对数据生成延迟数据对照表。
7.一种数据处理方法,应用于处理器中,该方法包括:
在发生数据访问冲突事件的情况下,确定所述数据访问冲突事件的冲突类型;
确定与所述冲突类型对应的延迟时间;
根据所述延迟时间,重发所述数据访问冲突事件对应的数据请求。
8.一种数据处理装置,其特征在于,包括:
第一确定模块,用于在发生数据访问冲突事件的情况下,确定所述数据访问冲突事件的冲突类型;
第二确定模块,用于确定与所述冲突类型对应的延迟时间;
重发模块,用于根据所述延迟时间,重发所述数据访问冲突事件对应的数据请求。
9.一种电子设备,包括存储器、处理器及存储在存储器上的计算机程序,其特征在于,所述处理器执行所述计算机程序以实现权利要求7所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求7所述方法的步骤。
CN202111566629.9A 2021-12-20 2021-12-20 一种处理器、数据处理方法和装置 Active CN114238182B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111566629.9A CN114238182B (zh) 2021-12-20 2021-12-20 一种处理器、数据处理方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111566629.9A CN114238182B (zh) 2021-12-20 2021-12-20 一种处理器、数据处理方法和装置

Publications (2)

Publication Number Publication Date
CN114238182A true CN114238182A (zh) 2022-03-25
CN114238182B CN114238182B (zh) 2023-10-20

Family

ID=80759816

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111566629.9A Active CN114238182B (zh) 2021-12-20 2021-12-20 一种处理器、数据处理方法和装置

Country Status (1)

Country Link
CN (1) CN114238182B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114928816A (zh) * 2022-04-24 2022-08-19 深圳数马电子技术有限公司 设备连接方法、系统、终端设备、检测装置和存储介质

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6449673B1 (en) * 1999-05-17 2002-09-10 Hewlett-Packard Company Snapshot and recall based mechanism to handle read after read conflict
US6467032B1 (en) * 1999-06-04 2002-10-15 International Business Machines Corporation Controlled reissue delay of memory requests to reduce shared memory address contention
US20110314338A1 (en) * 2010-06-18 2011-12-22 Microsoft Corporation Data collisions in concurrent programs
US20140075121A1 (en) * 2012-09-07 2014-03-13 International Business Machines Corporation Selective Delaying of Write Requests in Hardware Transactional Memory Systems
US20140337587A1 (en) * 2013-05-13 2014-11-13 Advanced Micro Devices, Inc. Method for memory consistency among heterogeneous computer components
CN106610816A (zh) * 2016-12-29 2017-05-03 山东师范大学 一种risc‑cpu中指令集之间冲突的规避方法及系统
US20180260231A1 (en) * 2017-03-13 2018-09-13 Board Of Supervisors Of Louisiana State University And Agricultural And Mechanical College Enhanced performance for graphical processing unit transactional memory
CN112217701A (zh) * 2019-07-09 2021-01-12 杭州萤石软件有限公司 总线冲突避免方法及装置
CN112506700A (zh) * 2020-11-30 2021-03-16 北京达佳互联信息技术有限公司 冲突处理方法、装置、电子设备及存储介质

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6449673B1 (en) * 1999-05-17 2002-09-10 Hewlett-Packard Company Snapshot and recall based mechanism to handle read after read conflict
US6467032B1 (en) * 1999-06-04 2002-10-15 International Business Machines Corporation Controlled reissue delay of memory requests to reduce shared memory address contention
US20110314338A1 (en) * 2010-06-18 2011-12-22 Microsoft Corporation Data collisions in concurrent programs
US20140075121A1 (en) * 2012-09-07 2014-03-13 International Business Machines Corporation Selective Delaying of Write Requests in Hardware Transactional Memory Systems
US20140337587A1 (en) * 2013-05-13 2014-11-13 Advanced Micro Devices, Inc. Method for memory consistency among heterogeneous computer components
CN106610816A (zh) * 2016-12-29 2017-05-03 山东师范大学 一种risc‑cpu中指令集之间冲突的规避方法及系统
US20180260231A1 (en) * 2017-03-13 2018-09-13 Board Of Supervisors Of Louisiana State University And Agricultural And Mechanical College Enhanced performance for graphical processing unit transactional memory
CN112217701A (zh) * 2019-07-09 2021-01-12 杭州萤石软件有限公司 总线冲突避免方法及装置
CN112506700A (zh) * 2020-11-30 2021-03-16 北京达佳互联信息技术有限公司 冲突处理方法、装置、电子设备及存储介质

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
张吉赞;古志民;: "多核共享缓存bank冲突分析及其延迟最小化", 计算机学报, no. 09, pages 169 - 185 *
欧焱;冯煜晶;李文明;叶笑春;王达;范东睿;: "面向数据流结构的指令内访存冲突优化研究", 计算机研究与发展, no. 12, pages 204 - 216 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114928816A (zh) * 2022-04-24 2022-08-19 深圳数马电子技术有限公司 设备连接方法、系统、终端设备、检测装置和存储介质

Also Published As

Publication number Publication date
CN114238182B (zh) 2023-10-20

Similar Documents

Publication Publication Date Title
US8140828B2 (en) Handling transaction buffer overflow in multiprocessor by re-executing after waiting for peer processors to complete pending transactions and bypassing the buffer
US9547599B2 (en) System and method for predicting false sharing
US20060047849A1 (en) Apparatus and method for packet coalescing within interconnection network routers
US20050144399A1 (en) Multiprocessor system, and consistency control device and consistency control method in multiprocessor system
US20150234687A1 (en) Thread migration across cores of a multi-core processor
CN116909943B (zh) 一种缓存访问方法、装置、存储介质及电子设备
CN114238182B (zh) 一种处理器、数据处理方法和装置
US11093245B2 (en) Computer system and memory access technology
US9678883B2 (en) System and method for detecting false sharing
US9880849B2 (en) Allocation of load instruction(s) to a queue buffer in a processor system based on prediction of an instruction pipeline hazard
US11989599B2 (en) Isolating communication streams to achieve high performance multi-threaded communication for global address space programs
CN110727611B (zh) 一种带状态监测的可配置一致性验证系统
US10248331B2 (en) Delayed read indication
CN115269199A (zh) 数据处理方法、装置、电子设备及计算机可读存储介质
CN115174673A (zh) 具备低延迟处理器的数据处理装置、数据处理方法及设备
US10284501B2 (en) Technologies for multi-core wireless network data transmission
Machado et al. Parallel Local Search: Experiments with a PGAS-based programming model
CN114063923A (zh) 数据读取方法、装置、处理器及电子设备
US11467844B2 (en) Storing multiple instructions in a single reordering buffer entry
US11216377B2 (en) Hardware accelerator automatic detection of software process migration
CN110647357B (zh) 同步多线程处理器
US11093401B2 (en) Hazard prediction for a group of memory access instructions using a buffer associated with branch prediction
US20110161629A1 (en) Arithmetic processor, information processor, and pipeline control method of arithmetic processor
US20180032339A1 (en) Cross-level prefetch for shared multi-level libraries
US20240054179A1 (en) Systems and methods for inference system caching

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: 100176 Room 101, 1f, building 3, yard 18, Kechuang 10th Street, Beijing Economic and Technological Development Zone, Beijing

Applicant after: Beijing yisiwei Computing Technology Co.,Ltd.

Address before: 100176 Room 101, 1f, building 3, yard 18, Kechuang 10th Street, Beijing Economic and Technological Development Zone, Beijing

Applicant before: Beijing yisiwei Computing Technology Co.,Ltd.

GR01 Patent grant
GR01 Patent grant