CN111080510B - 数据处理装置、方法、芯片、处理器、设备及存储介质 - Google Patents

数据处理装置、方法、芯片、处理器、设备及存储介质 Download PDF

Info

Publication number
CN111080510B
CN111080510B CN201911272283.4A CN201911272283A CN111080510B CN 111080510 B CN111080510 B CN 111080510B CN 201911272283 A CN201911272283 A CN 201911272283A CN 111080510 B CN111080510 B CN 111080510B
Authority
CN
China
Prior art keywords
data processing
cache
core module
processing request
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.)
Active
Application number
CN201911272283.4A
Other languages
English (en)
Other versions
CN111080510A (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.)
Chengdu Haiguang Microelectronics Technology Co Ltd
Original Assignee
Haiguang Information 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 Haiguang Information Technology Co Ltd filed Critical Haiguang Information Technology Co Ltd
Priority to CN201911272283.4A priority Critical patent/CN111080510B/zh
Publication of CN111080510A publication Critical patent/CN111080510A/zh
Priority to PCT/CN2020/114010 priority patent/WO2021114768A1/zh
Application granted granted Critical
Publication of CN111080510B publication Critical patent/CN111080510B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management

Abstract

本申请提供一种数据处理装置、方法、芯片、处理器、设备及存储介质,数据处理装置包括:至少两个基础核心模块,每个基础核心模块包括多个计算引擎、缓存网络、多个转换开关、多个缓存单元、共享总线以及核心缓存;该多个缓存单元及核心缓存分别与缓存网络连接,多个计算引擎通过多个转换开关与缓存网络连接,多个转换开关通过共享总线串行连接,共享总线与另一基础核心模块的核心缓存连接,转换开关用于在接收到访问另一基础核心模块的数据处理请求后,通过共享总线将数据处理请求传输至另一基础核心模块的核心缓存,使其基于第一数据处理请求访问另一基础核心模块的缓存单元。能够在不影响性能、不提高工艺复杂度的情况下实现计算引擎的扩展。

Description

数据处理装置、方法、芯片、处理器、设备及存储介质
技术领域
本申请涉及处理器技术领域,具体而言,涉及一种数据处理装置、方法、芯片、处理器、设备及存储介质。
背景技术
图形处理器(Graphics Processing Unit,GPU),是一种专用于在个人电脑、工作站、游戏机和一些移动设备(如平板电脑、智能手机等)上进行图像和图形相关运算工作的微处理器。GPU能够使显卡减少对中央处理器(CentralProcessing Unit,CPU)的依赖,并进行部分原本CPU的工作,尤其是对于3D图形的处理。
目前,现有的GPU在可扩展性上存在一定的困难,因为目前GPU中的计算引擎(Compute Engine)是通过上述的缓存网络实现互相连接的,如果要扩展这个架构,例如从四个计算引擎扩展到八个计算引擎,很难简单地通过扩展缓存网络来连接更多的计算引擎。这是因为一方面单纯地将缓存网络扩大,会使计算引擎的访问路径变长,从而会导致性能的明显下降,另一方面,是存在芯片绕线资源的限制和物理工艺的限制,直接将缓存网络扩大会增加工艺复杂度且较难实现。
因此,如何在不影响性能、不提高工艺复杂度的基础上实现计算引擎的扩展是当前亟需解决的问题。
发明内容
本申请提供一种数据处理装置、方法、芯片、处理器、设备及存储介质,用于解决扩展计算引擎数量时导致性能降低的问题,能够在不影响性能、不提高工艺复杂度的情况下实现计算引擎的扩展。
为了实现上述目的,本申请实施例所提供的技术方案如下所示:
第一方面,本申请实施例提供一种数据处理装置,所述数据处理装置包括:至少两个基础核心模块,每个所述基础核心模块包括:多个计算引擎、缓存网络、多个转换开关、多个缓存单元、共享总线以及核心缓存;
每个所述基础核心模块中,所述多个缓存单元以及所述核心缓存分别与所述缓存网络连接,所述多个计算引擎通过所述多个转换开关与所述缓存网络连接,所述多个转换开关通过所述共享总线串行连接;
所述至少两个基础核心模块中的第一基础核心模块的共享总线与第二基础核心模块的核心缓存连接,所述第一基础核心模块中的任一转换开关用于在接收到访问所述第二基础核心模块中的第一目标缓存单元的第一数据处理请求后,通过所述第一基础核心模块的共享总线将所述第一数据处理请求传输至所述第二基础核心模块的核心缓存,所述第二基础核心模块的核心缓存用于基于所述第一数据处理请求访问所述第一目标缓存单元。
在上述实施方式中,数据处理装置包括至少两个基础核心模块,每个基础核心模块中都包括多个计算引擎,每个计算引擎都通过转换开关与缓存网络连接,多个转换开关通过所述共享总线串行连接,并且一个基础核心模块中的共享总线与另一个基础核心模块中的核心缓存连接,而另一个基础核心模块中的核心缓存是与另一个基础核心模块中的缓存网络连接的,因此,通过上述架构,实现了对计算引擎的数量的扩展。当一基础核心模块中的任一转换开关在接收到访问另一基础核心模块中的目标缓存单元的数据处理请求后,该转换开关能够通过其连接的共享总线将该数据处理请求传输至与共享总线连接的另一基础核心模块的核心缓存,从而实现了将该数据处理请求传输到另一基础核心模块,此时已传输至该核心缓存中的该数据处理请求就能够通过该核心缓存所连接的缓存网络,访问到目标缓存单元,从而通过上述的基于共享总线的架构,实现了一个基础核心模块中的计算引擎对另一基础核心模块中的目标缓存单元的访问。由于在一个基础核心模块中由于没有对缓存网络进行扩展,计算引擎的访问路径没有延长,因此对于一个基础核心模块的性能没有影响,也没有增加工艺复杂度。因此,能够在不影响性能、不提高工艺复杂度的情况下实现对计算引擎扩展。
可选的,所述第二基础核心模块的共享总线与所述第一基础核心模块的核心缓存连接,所述第二基础核心模块中的任一转换开关用于在接收到访问所述第一基础核心模块中的第二目标缓存单元的第二数据处理请求后,通过所述第二基础核心模块的共享总线将所述第二数据处理请求传输至所述第一基础核心模块的核心缓存,所述第一基础核心模块的核心缓存用于基于所述第二数据处理请求访问所述第二目标缓存单元。
在上述实施方式中,在第一基础核心模块的共享总线与第二基础核心模块的核心缓存连接基础上,第二基础核心模块的共享总线也与所述第一基础核心模块的核心缓存连接,从而使两个基础核心模块相互连接,能够在不影响性能、不提高工艺复杂度的情况下,使相互连接的两个基础核心模块中的任一基础核心模块中的计算引擎,对另一基础核心模块中的目标缓存单元的访问。从而能够实现一个基础核心模块中的存储客户端对另一基础核心模块中的目标缓存单元的访问。
可选的,在每个所述基础核心模块中,每个计算引擎包括多个存储客户端,每个存储客户端通过一个转换开关与缓存网络中的一个缓存路由连接,核心缓存与缓存网络中的一个缓存路由连接。
在上述实施方式中,在每个基础核心模块中,每个计算引擎中的每个存储客户端通过一个转换开关与一个缓存路由连接,核心缓存与缓存网络中的一个缓存路由连接,由于基础核心模块中的转换开关通过共享总线连接,因此在计算引擎中的任一存储客户端需要访问另一基础核心模块中的缓存单元时,其数据处理请求不经过缓存网络,而是通过转换开关以及共享总系传输到另一基础核心模块的核心缓存中,从而能够实现一个基础核心模块中的存储客户端对另一基础核心模块的访问。
可选的,在每个所述基础核心模块中,所述多个计算引擎包括的多个存储客户端与所述多个转换开关一一对应,每个存储客户端通过对应的转换开关与缓存网络中的一个缓存路由连接,所述缓存网络包括呈网格状排布的多个缓存路,所述缓存网络中的每个缓存路由与相邻的每个缓存路由连接。
在上述实施方式中,在每个基础核心模块中,每个计算引擎中的每个存储客户端通过一个对应的转换开关与一个缓存路由连接,由于基础核心模块中的转换开关通过共享总线连接,因此在计算引擎中的任一存储客户端需要访问另一基础核心模块中的缓存单元时,其数据处理请求不经过缓存网络,而是通过转换开关以及共享总系传输到另一基础核心模块的核心缓存中,从而能够实现一个基础核心模块中的存储客户端对另一基础核心模块的访问。
可选的,所述第一数据处理请求为读请求,所述第二基础核心模块的核心缓存用于:
在接收到所述第一数据处理请求,且所述第二基础核心模块的核心缓存中存储有所述第一数据处理请求所请求的第一目标数据时,将所述第一目标数据通过所述第一基础核心模块的共享总线返回至发送所述第一数据处理请求的存储客户端;
在接收到所述第一数据处理请求,且所述第二基础核心模块的核心缓存中不存在所述第一目标数据时,基于所述第一数据处理请求,通过所述第二基础核心模块的缓存网络,从所述第一目标缓存单元中获取所述第一目标数据,并将所述第一目标数据通过所述第一基础核心模块的共享总线返回至发送所述第一数据处理请求的存储客户端。
在上述实施方式中,在第一基础核心模块的计算引擎中的存储客户端发送的第一数据处理请求传输到第二基础核心模块的核心缓存时,如果该核心缓存中已经存储有第一数据处理请求所请求的第一目标数据时,该核心缓存会将第一目标数据直接返回给该客户端,如果该核心缓存没有存储第一目标数据,则该核心缓存能够通过与其连接的第二基础核心模块的缓存网络从第一目标缓存单元中获取该第一目标数据并返回给该客户端,从而能够实现第一基础核心模块的计算引擎中的存储客户端对第二基础核心模块中的缓存单元的访问。
可选的,每个转换开关包括第一端口、第二端口、第三端口、第四端口、第一数据选择器、数据缓冲器、裁决器和第二数据选择器;
其中,所述第一端口用于与对应的存储客户端连接,所述第二端口用于与一个缓存路由连接,所述第三端口用于通过共享总线与上一跳转换开关连接,所述第四端口用于通过共享总线与下一跳转换开关或另一基础核心模块的核心缓存连接,所述第一数据选择器分别与所述第一端口、所述第二端口和所述数据缓冲器连接,所述裁决器分别与所述数据缓冲器、所述第三端口和所述第四端口连接,所述第二数据选择器分别与所述第一端口、所述第二端口、所述第三端口和所述第四端口连接;
所述第一数据选择器用于将所述第一端口接收到的存储客户端的数据处理请求发送至与所述第二端口连接的缓存路由,或者发送至所述数据缓冲器;
所述裁决器用于接收所述数据缓冲器和所述第三端口发送的数据处理请求,并在接收到的数据处理请求为多个时,确定多个数据处理请求中优先响应的数据处理请求,并将所述优先响应的数据处理请求通过所述第四端口输出至共享总线;
所述第二数据选择器用于将所述第四端口接收到的读回数据输出至与所述第一端口连接的存储客户端,或者通过所述第三端口输出至共享总线,还用于将所述第二端口接收到的读回数据输出至与所述第一端口连接的存储客户端。
在上述实施方式中,转换开关能够通过第一数据选择器将第一端口接收到的存储客户端发送的数据处理请求发送至与第二端口连接的缓存路由,或者发送至数据缓冲器,转换开关中的裁决器能够接收数据缓冲器和第三端口发送的数据处理请求,并在接收到的数据处理请求为多个时,确定优先响应的数据处理请求,并将优先响应的数据处理请求通过第四端口输出至共享总线;转换开关能够通过第二数据选择器将第四端口接收到的读回数据输出至与第一端口连接的存储客户端,或者通过第三端口输出至共享总线,还用于将所述第二端口接收到的读回数据输出至与所述第一端口连接的存储客户端。因此,能够通过转换开关将数据处理请求路由到缓存网络或共享总线,或者将返回的读回数据路由至存储客户端或共享总线。
可选的,所述第一数据处理请求为包含写入数据的写请求,所述第一基础核心模块中的任一转换开关用于:
在接收到所述第一数据处理请求时,将所述第一数据处理请求存储在所述数据缓冲器,并向发起所述第一数据处理请求的存储客户端返回针对所述第一数据处理请求的写确认消息;
在所述第一数据处理请求满足输出条件时,通过所述裁决器将所述第一数据处理请求通过所述第四端口输出至共享总线,以通过所述共享总线将所述第一数据处理请求传输至所述第二基础核心模块的缓存核心,以使所述第二基础核心模块的缓存核心基于所述第一数据处理请求,通过所述第二基础核心模块的缓存网络,将所述写入数据写入所述第一目标缓存单元中。
在上述实施方式中,能够在接收到存储客户端的包含写入数据的写请求时,将写请求存储在数据缓冲器,并向发起请求的存储客户端返回针对该写请求的写确认消息,在写请求被裁决器输出至共享总线,并由共享总线传输至第二基础核心模块的缓存核心时,第二基础核心模块的缓存核心基于该写请求,通过第二基础核心模块的缓存网络,将该写入数据写入需要访问的目标缓存单元中,能够实现对存储客户端的写请求的快速响应。
第二方面,本申请实施例提供一种数据处理方法,应用于上述第一方面所述的数据处理装置,所述方法包括:
所述第一基础核心模块中的任一转换开关在接收到访问所述第二基础核心模块中的第一目标缓存单元的第一数据处理请求后,通过所述第一基础核心模块的共享总线将所述第一数据处理请求传输至所述第二基础核心模块的核心缓存;
所述第二基础核心模块的核心缓存基于所述第一数据处理请求访问所述第一目标缓存单元。
在上述实施方式中,数据处理装置包括至少两个基础核心模块,每个基础核心模块中都包括多个计算引擎,每个计算引擎都通过转换开关与缓存网络连接,多个转换开关通过所述共享总线串行连接,并且一个基础核心模块中的共享总线与另一个基础核心模块中的核心缓存连接,而另一个基础核心模块中的核心缓存是与另一个基础核心模块中的缓存网络连接的,因此,通过上述架构,实现了对计算引擎的数量的扩展。当一基础核心模块中的任一转换开关在接收到访问另一基础核心模块中的目标缓存单元的数据处理请求后,该转换开关能够通过其连接的共享总线将该数据处理请求传输至与共享总线连接的另一基础核心模块的核心缓存,从而实现了将该数据处理请求传输到另一基础核心模块,此时已传输至该核心缓存中的该数据处理请求就能够通过该核心缓存所连接的缓存网络,访问到目标缓存单元,从而通过上述的基于共享总线的架构,实现了一个基础核心模块中的计算引擎对另一基础核心模块中的目标缓存单元的访问。由于在一个基础核心模块中由于没有对缓存网络进行扩展,计算引擎的访问路径没有延长,因此对于一个基础核心模块的性能没有影响,也没有增加工艺复杂度。因此,能够在不影响性能、不提高工艺复杂度的情况下实现对计算引擎扩展。
可选的,所述第二基础核心模块的共享总线与所述第一基础核心模块的核心缓存连接,所述方法还包括:
所述第二基础核心模块中的任一转换开关在接收到访问所述第一基础核心模块中的第二目标缓存单元的第二数据处理请求后,通过所述第二基础核心模块的共享总线将所述第二数据处理请求传输至所述第一基础核心模块的核心缓存;
所述第一基础核心模块的核心缓存基于所述第二数据处理请求访问所述第二目标缓存单元。
在上述实施方式中,在第一基础核心模块的共享总线与第二基础核心模块的核心缓存连接基础上,第二基础核心模块的共享总线也与所述第一基础核心模块的核心缓存连接,从而使两个基础核心模块相互连接,能够在不影响性能、不提高工艺复杂度的情况下,使相互连接的两个基础核心模块中的任一基础核心模块中的计算引擎,对另一基础核心模块中的目标缓存单元的访问。从而能够实现一个基础核心模块中的存储客户端对另一基础核心模块中的目标缓存单元的访问。
可选的,所述第一数据处理请求为读请求,所述第二基础核心模块的核心缓存基于所述第一数据处理请求访问所述第一目标缓存单元,包括:
所述第二基础核心模块的核心缓存在接收到所述第一数据处理请求,且所述第二基础核心模块的核心缓存中存储有所述第一数据处理请求所请求的第一目标数据时,将所述第一目标数据通过所述第一基础核心模块的共享总线返回至发送所述第一数据处理请求的存储客户端;
在接收到所述第一数据处理请求,且所述第二基础核心模块的核心缓存中不存在所述第一目标数据时,基于所述第一数据处理请求,通过所述第二基础核心模块的缓存网络,从所述第一目标缓存单元中获取所述第一目标数据,并将所述第一目标数据通过所述第一基础核心模块的共享总线返回至发送所述第一数据处理请求的存储客户端。
在上述实施方式中,在第一基础核心模块的计算引擎中的存储客户端发送的第一数据处理请求传输到第二基础核心模块的核心缓存时,如果该核心缓存中已经存储有第一数据处理请求所请求的第一目标数据时,该核心缓存会将第一目标数据直接返回给该客户端,如果该核心缓存没有存储第一目标数据,则该核心缓存能够通过与其连接的第二基础核心模块的缓存网络从第一目标缓存单元中获取该第一目标数据并返回给该客户端,从而能够实现第一基础核心模块的计算引擎中的存储客户端对第二基础核心模块中的缓存单元的访问。
可选的,所述第一数据处理请求为包含写入数据的写请求,所述第二基础核心模块的核心缓存基于所述第一数据处理请求访问所述第一目标缓存单元,包括:
所述第一基础核心模块中的任一转换开关在接收到所述第一数据处理请求时,将所述第一数据处理请求存储在数据缓冲器,并向发起所述第一数据处理请求的存储客户端返回针对所述第一数据处理请求的写确认消息;
在所述第一数据处理请求满足输出条件时,所述任一转换开关中的裁决器将所述第一数据处理请求通过所述任一转换开关的第四端口输出至共享总线,以通过所述共享总线将所述第一数据处理请求传输至所述第二基础核心模块的缓存核心;
所述第二基础核心模块的缓存核心基于所述第一数据处理请求,通过所述第二基础核心模块的缓存网络,将所述写入数据写入所述第一目标缓存单元中;
所述第二基础核心模块的缓存核心基于所述第一数据处理请求,通过所述第二基础核心模块的缓存网络,将所述写入数据写入所述第一目标缓存单元中。
在上述实施方式中,能够在接收到存储客户端的包含写入数据的写请求时,将写请求存储在数据缓冲器,并向发起请求的存储客户端返回针对该写请求的写确认消息,在写请求被裁决器输出至共享总线,并由共享总线传输至第二基础核心模块的缓存核心时,第二基础核心模块的缓存核心基于该写请求,通过第二基础核心模块的缓存网络,将该写入数据写入需要访问的目标缓存单元中,能够实现对存储客户端的写请求的快速响应。
第三方面,本申请实施例提供一种处理器,包括上述第一方面所述的数据处理装置。
第四方面,本申请实施例提供一种芯片,包括上述第一方面所述的数据处理装置,所述数据处理装置形成在同一半导体基板上。
第五方面,本申请实施例提供一种处理器,包括上述第四方面所述的芯片。
第六方面,本申请实施例提供一种电子设备,包括:存储器和处理器,所述存储器中存储有计算机程序,所述计算机程序被所述处理器执行时,实现上述第二方面所述的数据处理方法。
第七方面,本申请实施例提供一种存储介质,所述存储介质中存储有计算机程序,所述计算机程序被处理器执行时,实现上述第二方面所述的数据处理方法。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍。应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1是本申请实施例提供的一种数据处理装置100的结构示意图。
图2是本申请实施例提供的另一种数据处理装置100的结构示意图。
图3是本申请实施例提供的又一种数据处理装置100的结构示意图。
图4是本申请实施例提供的一种核心缓存的结构示意图。
图5是本申请实施例示出的一种转换开关的结构示意图。
图6是本申请实施例示出的另一种转换开关的结构示意图。
图7是本申请实施例提供的一种数据处理方法的流程图。
图8是本申请实施例提供的另一种数据处理方法的流程图。
图9是本申请实施例提供的一种电子设备200的框图。
图标:100-数据处理装置;110-基础核心模块;111-计算引擎;112-缓存网络;113-转换开关;114-缓存单元;115-共享总线;116-核心缓存;110a-第一基础核心模块;110b-第二基础核心模块;111a-第一基础核心模块中的计算引擎;111b-第二基础核心模块中的计算引擎;112a-第一基础核心模块中缓存网络;112b-第二基础核心模块中缓存网络;113a-第一基础核心模块中的转换开关;113b-第二基础核心模块中的转换开关;114a-第一基础核心模块中的缓存单元;114b-第二基础核心模块中的缓存单元;115a-第一基础核心模块中的共享总线;115b-第二基础核心模块中的共享总线;116a-第一基础核心模块中的核心缓存;116b-第二基础核心模块中的核心缓存;1111a-计算引擎111a中的存储客户端;1111b-计算引擎111b中的存储客户端;1121b-缓存网络112b中的缓存路由;1131-第一端口、1132-第二端口、1133-第三端口、1134-第四端口、1135-第一数据选择器、1136-数据缓冲器、1137-裁决器和1138-第二数据选择器;11391-请求输入寄存器;11392a、11392b-请求数据寄存器;11393-请求输出寄存器;11394a、11394b、11394c、11394d-读回数据寄存器;11395a、11395b-总线寄存器;11396-确认消息寄存器。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。需要说明的是,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
在现有技术中,GPU芯片通常包含有四个计算引擎(Compute Engine),每个计算引擎可以理解为GPU的一个核心(Core),每个计算引擎通常包含多个存储客户端(MemoryClient),每个存储客户端可以理解为是计算引擎中的一个核心,所有的存储客户端都与缓存网络连接,并通过该缓存网络访问内存/缓存。因为目前GPU中的计算引擎是通过上述的缓存网络实现互相连接的,所以GPU在可扩展性上存在一定的困难。如果要扩展这个架构,例如从四个计算引擎扩展到八个计算引擎,如果单纯地将缓存网络扩大,会使计算引擎中的存储客户端的访问路径变长,在最差的情况下,一个客户端可能需要经常很长的路径来访问缓存/内存。例如,在从四个计算引擎扩展到八个计算引擎时,如果采用将缓存网络扩大的方式,则需要对应的将缓存网络扩展到原来的两倍,在此情况下,如果GPU中位于的左上角的存储客户端需要访问右下角的缓存,则该客户端的访问路径的长度也将扩展到两倍,从而会导致性能的明显下降。另一方面,由于芯片绕线资源的限制和物理工艺的限制,从四个计算引擎扩展到八个计算引擎时,也会大大增加制造工艺难度。
因此,如何在不影响性能、不提高工艺复杂度的基础上实现计算引擎的扩展是本领域技术人员的一大难题。鉴于上述问题,本申请申请人经过长期研究探索,提出以下实施例以解决上述问题。下面结合附图,对本申请实施例作详细说明。在不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。
图1是本申请实施例提供的一种数据处理装置100的结构示意图,该数据处理装置100可以应用于一种处理器,该处理器可以是GPU、DCU(Deep Computing Unit,深度计算单元)或CPU,该CPU也可以是集成了GPU的CPU,该DCU可以理解为一种GPGPU(GeneralPurposeComputingon Graphics Processing Units,用于通用计算的图形处理器),但是DCU通常不包括一般GPU中的图形处理的部分。
请参照图1,该数据处理装置100包括:至少两个基础核心模块110,每个基础核心模块110包括:多个计算引擎111、缓存网络112、多个转换开关(Switch)113、多个缓存单元114、共享总线(Share Bus)115以及核心缓存(Core Cache)116。
每个基础核心模块110中,多个缓存单元114以及核心缓存116分别与缓存网络112连接,多个计算引擎111通过多个转换开关113与缓存网络112连接,多个转换开关113通过共享总线115串行连接。核心缓存116用于与另一基础核心模块110中的共享总线115连接,以实现两个基础核心模块110的连接。
图2是本申请实施例提供的另一种数据处理装置100的结构示意图,下面结合图2,以所述至少两个基础核心模块中的第一基础核心模块110a和第二基础核心模块110b为例进行说明。如图2所示,第一基础核心模块110a的共享总线115a与第二基础核心模块110b的核心缓存116b连接,该第一基础核心模块110a中的任一转换开关113a用于在接收到访问第二基础核心模块110b中的第一目标缓存单元的第一数据处理请求后,通过第一基础核心模块110a的共享总线115a将第一数据处理请求传输至第二基础核心模块110b的核心缓存116b,第二基础核心模块110b的核心缓存116b用于基于第一数据处理请求访问第一目标缓存单元。该第一目标缓存单元可以是第二基础核心模块110b中的多个缓存单元114b中的任意一个缓存单元。
其中,任一转换开关113a在接收到第一数据处理请求后,通过第一基础核心模块110a的共享总线115a将第一数据处理请求传输至第二基础核心模块110b的核心缓存116b,可以理解为:如果在共享总线115a上,在当前转换开关113a与核心缓存116b之间还存在其他的转换开关113a,则当前的转换开关113a在接收到该第一数据处理请求后,通过共享总线115a将第一数据处理请求传输至下一跳转换开关113a,并由该下一跳转换开关113a将第一数据处理请求继续向下游传输,直至该第一数据处理请求被传输至核心缓存116b。其中,需要说明的是,本申请中的上游和下游是以数据传输的方向为参照的。
另外,当基础核心模块的数量大于2时,该第一基础核心模块110a和第二基础核心模块110b可以是所述至少两个基础核心模块中具有连接关系的任意两个基础核心模块。例如,当所述至少两个基础核心模块采用线性排列的结构时,第一基础核心模块110a和第二基础核心模块110b可以是左右相邻的两个基础核心模块。
还需要说明的是,每个基础核心模块110中的计算引擎111的数量可以根据需要设置,例如,通常情况下,每个基础核心模块110中包括4个计算引擎111。缓存网络112是由多个缓存路由(Cache Router)组成。任一缓存单元114可以是缓存库(Cache Bank),例如L2(二级缓存)缓存库。示例的,在每个基础核心模块110中可以设置有16个L2缓存库,图1或图2中所示的每个缓存单元可以表示4个L2缓存库。
在上述实施方式中,每个基础核心模块中都包括多个计算引擎,每个计算引擎都通过转换开关与缓存网络连接,多个转换开关通过所述共享总线串行连接,并且一个基础核心模块中的共享总线与另一个基础核心模块中的核心缓存连接,而另一个基础核心模块中的核心缓存是与另一个基础核心模块中的缓存网络连接的,因此,通过上述架构,实现了对计算引擎的数量的扩展。当一基础核心模块中的任一转换开关在接收到访问另一基础核心模块中的目标缓存单元的数据处理请求后,该转换开关能够通过其连接的共享总线将该数据处理请求传输至与共享总线连接的另一基础核心模块的核心缓存,从而实现了将该数据处理请求传输到另一基础核心模块,此时已传输至该核心缓存中的该数据处理请求就能够通过该核心缓存所连接的缓存网络,访问到目标缓存单元,从而通过上述的基于共享总线的架构,实现了一个基础核心模块中的计算引擎对另一基础核心模块中的目标缓存单元的访问。由于在一个基础核心模块中由于没有对缓存网络进行扩展,计算引擎的访问路径没有延长,因此对于一个基础核心模块的性能没有影响,也没有增加工艺复杂度。因此,能够在不影响性能、不提高工艺复杂度的情况下实现对计算引擎扩展。
进一步的,如图2所示,第二基础核心模块110b的共享总线115b与第一基础核心模块110a的核心缓存116a连接,第二基础核心模块110b中的任一转换开关113b用于在接收到访问第一基础核心模块110a中的第二目标缓存单元的第二数据处理请求后,通过第二基础核心模块110b的共享总线115b将第二数据处理请求传输至第一基础核心模块110a的核心缓存116a,第一基础核心模块110a的核心缓存116a用于基于第二数据处理请求访问第二目标缓存单元。该第二目标缓存单元可以是第一基础核心模块110a中的多个缓存单元114a中的任意一个缓存单元。
由此可见,在上述实施方式中,在第一基础核心模块的共享总线与第二基础核心模块的核心缓存连接基础上,第二基础核心模块的共享总线也与第一基础核心模块的核心缓存连接,从而使两个基础核心模块相互连接,能够在不影响性能、不提高工艺复杂度的情况下,使相互连接的两个基础核心模块中的任一基础核心模块中的计算引擎,对另一基础核心模块中的目标缓存单元的访问。从而能够实现一个基础核心模块中的存储客户端对另一基础核心模块中的目标缓存单元的访问。
可选的,在每个基础核心模块110中,每个计算引擎111包括多个存储客户端,每个存储客户端通过一个转换开关113与缓存网络112中的一个缓存路由连接,核心缓存116与缓存网络112中的一个缓存路由连接。其中,每个计算引擎111中的多个存储客户端就相当于计算引擎111中的多个核心,一般情况下,GPU中的一个计算引擎中有64个存储客户端。
进一步的,在每个基础核心模块110中,多个计算引擎111包括的多个存储客户端与多个转换开关113一一对应,每个存储客户端通过对应的转换开关113与缓存网络112中的一个缓存路由连接,缓存网络112包括呈网格状排布的多个缓存路由,缓存网络中的每个缓存路由与相邻的每个缓存路由连接。
示例的,图3是本申请实施例提供的又一种数据处理装置100的结构示意图,参见图3,第一基础核心模块110a中的任一计算引擎111a中的包括多个存储客户端1111a,第一基础核心模块110a所有计算引擎111a包括的多个存储客户端1111a与转换开关113a一一对应,例如,第一基础核心模块110a中如果有n个存储客户端1111a,则第一基础核心模块110a中就有n个转换开关113a。第一基础核心模块110a中缓存网络112a由呈网格状排布(或者称为阵列排布)的多个缓存路由1121a组成,缓存网络112a中的每个缓存路由1121a均与相邻的每个缓存路由1121a连接,例如一个缓存路由1121a的上方、下方或左方均存在相邻的缓存路由1121a时,则该缓存路由1121a与上方、下方和左方的相邻缓存路由1121a均连接。每个存储客户端1111a与一个对应的转换开关113a连接,并通过该转换开关113a与一个缓存路由1121a连接,同时多个转换开关113a通过第一基础核心模块110a的共享总线115a串行连接,该共享总线115a与第二基础核心模块110b的核心缓存116b连接。
与第二基础核心模块110b类似,第二基础核心模块110b中的任一计算引擎111b中的包括多个存储客户端1111b,第二基础核心模块110b所有计算引擎111b包括的多个存储客户端1111b与转换开关113b一一对应。第二基础核心模块110b中缓存网络112b也是由呈网格状排布的多个缓存路由1121b组成,缓存网络112b中的每个缓存路由1121b均与相邻的每个缓存路由1121b连接。每个存储客户端1111b与一个对应的转换开关113b连接,并通过该转换开关113b与一个缓存路由1121b连接,同时多个转换开关113b通过第二基础核心模块110b的共享总线115b串行连接,该共享总线115b与第一基础核心模块110a的核心缓存116a连接。
对于不同的数据处理请求,上述的数据处理装置100的处理方式也有所不同,下面分别针对不同类型的数据处理请求,对一个基础核心模块中的存储客户端对另一基础核心模块中的目标缓存单元的访问过程进行说明。
上述第一数据处理请求为读请求时,第二基础核心模块110b的核心缓存116b可以用于:
在接收到第一数据处理请求,且第二基础核心模块110b的核心缓存116b中存储有第一数据处理请求所请求的第一目标数据时,将第一目标数据通过第一基础核心模块110a的共享总线115a返回至发送第一数据处理请求的存储客户端。
在接收到第一数据处理请求,且第二基础核心模块110b的核心缓存116b中不存在第一目标数据时,基于第一数据处理请求,通过第二基础核心模块116b的缓存网络112b,从第一目标缓存单元中获取第一目标数据,并将第一目标数据通过第一基础核心模块110a的共享总线115a返回至发送第一数据处理请求的存储客户端。
即,在第二基础核心模块110b的核心缓存116b接收到来自第一基础核心模块110a的某一存储客户端1111a发送的第一数据处理请求时,如果核心缓存116b中当前已经存储了第一数据处理请求所请求的第一目标数据,可以将该第一目标数据原路(即第一数据处理请求从储客户端1111a传输至核心缓存116b的路径的相反路径)返回至发送第一数据处理请求的存储客户端1111a。其中,核心缓存116b中已经存储的第一目标数据可以是在上一次接收到请求访问该第一目标数据的数据处理请求时,从第一目标数据所在的缓存单元获取并存储在核心缓存116b中的。
如果核心缓存116b中没有存储第一数据处理请求所请求的第一目标数据,则核心缓存116b可以与一个存储客户端类似,通过与其连接的缓存路由1121b将该第一数据处理请求发送至第二基础核心模块110b的缓存网络112b中,以便将该第一数据处理请求通过缓存网络112b路由到第一目标缓存单元,在从第一目标缓存单元中获取该第一目标数据后,由缓存网络112b将该第一目标数据路由到核心缓存116b中,由核心缓存116b将该第一目标数据原路返回至发送第一数据处理请求的存储客户端1111a。
另外,核心缓存的结构可以如图4所示,图4是本申请实施例提供的一种核心缓存的结构示意图,参见图4,缓存核心可以包括:缓存控制(Cache Control)模块,标签缓存(Tag-Cache),脏数据掩码(Dirty-Mask)模块和数据缓存(Data-Cache),该缓存控制模块用于实现以下功能:写缓存(Write-Buffer),地址标签(Address-Tag)管理,读回数据(Read-Return)返回,命中未命中校验(Hit-Miss Check)等。示例的,当接收到数据处理请求时,可以通过命中未命中校验模块确定是否命中数据处理请求所请求的数据,当确定命中时,说明数据缓存已经存储了数据处理请求所请求的数据,从而可以从数据缓存中获取该数据,并通过读回数据模块输出至共享总线,并返回至发送数据处理请求的存储客户端。
其中,第二基础核心模块110b的核心缓存116b在接收到针对该第一目标数据的一次请求时(例如第一次接收到针对该第一目标数据的请求时),在从目标缓存单元获取到该第一目标数据候,将该第一目标数据存储在核心缓存116b的中,以便下一次访问请求到来时可以直接返回该第一目标数据。考虑到核心缓存116b中的存储空间有限,可以设置定期清理缓存的机制,例如当存储在核心缓存116b中的数据的存储时长达到预设的时长阈值时,将该数据删除(或者设置为允许覆盖),在该数据被删除后,下一次接收到针对该数据的访问请求时,需要核心缓存116b按照上述的方式从对应的目标缓存单元中重新获取该数据。
通过上述实施方式,能够实现第一基础核心模块110b中的任一存储客户端1111a对第二基础核心模块110b中的缓存单元的访问。
同理,第二数据处理请求为读请求时,第一基础核心模块110a的核心缓存116a与第二基础核心模块110b的核心缓存116b的作用相同,可以用于:
在接收到第二数据处理请求,且第一基础核心模块110a的核心缓存116a中存储有第二数据处理请求所请求的第二目标数据时,将第二目标数据通过第二基础核心模块110b的共享总线115b返回至发送第二数据处理请求的存储客户端。
在接收到第二数据处理请求,且第一基础核心模块110a的核心缓存116a中不存在第二目标数据时,基于第二数据处理请求,通过第一基础核心模块116a的缓存网络112a,从第二目标缓存单元中获取第二目标数据,并将第二目标数据通过第二基础核心模块110b的共享总线115b返回至发送第二数据处理请求的存储客户端。
从而能够实现第二基础核心模块110b中的任一存储客户端1111b对第一基础核心模块110a中的缓存单元的访问。上述的数据处理装置100中的相互连接的任意两个基础核心模块均可以通过上述的实施方式实现对另一个基础核心模块中的缓存单元的访问。
图5是本申请实施例示出的一种转换开关的结构示意图,每个转换开关113可以包括第一端口1131、第二端口1132、第三端口1133、第四端口1134、第一数据选择器1135、数据缓冲器1136、裁决器(Arbitor)1137和第二数据选择器1138;
其中,第一端口1131用于与对应的存储客户端连接,第二端口1132用于与一个缓存路由连接,第三端口1133用于通过共享总线与上一跳转换开关连接,第四端口1134用于通过共享总线与下一跳转换开关或另一基础核心模块的核心缓存连接,第一数据选择器1135分别与第一端口1131、第二端口1132和数据缓冲器1136连接,裁决器1137分别与数据缓冲器1136、第三端口1133和第四端口1134连接,第二数据选择器1138分别与第一端口1131、第二端口1132、第三端口1133和第四端口1134连接。其中,需要说明的是第一端口1131、第二端口1132、第三端口1133和第四端口1134中的任一端口可以是指一个端口,也可以是多个端口,例如第一端口1131可以包含多个端口,多个端口可以分别用于传输读请求、写请求、写入数据、写确认消息中的一种或几种。
第一数据选择器1135用于将第一端口1131接收到的存储客户端的数据处理请求发送至与第二端口1132连接的缓存路由,或者发送至数据缓冲器1136,以及用于将第二端口1132接收到的写确认消息通过第一端口1131返回给存储客户端。
裁决器1137用于接收数据缓冲器1136和第三端口1133发送的数据处理请求,并在接收到的数据处理请求为多个时,确定多个数据处理请求中优先响应的数据处理请求,并将优先响应的数据处理请求通过第四端口1134输出至共享总线。
其中,当接收到的数据处理请求为多个,裁决器1137可以根据预先设置的策略来确定多个数据处理请求中的哪一个数据处理请求应当优先响应。示例的,通常来说,来自共享总线的数据处理请求拥有更高的优先级,而对于来自相同优先级数据来源(即都来自存储客户端或都来自共享总线)的多个数据处理请求则可以采用先入先出的原则(即先接收到的数据处理请求先进行响应),并且可以对暂存于数据缓冲器1136中的数据处理请求的等待次数进行计数。例如,假设当前数据缓冲器1136中存储有3个数据处理请求,分别为请求1、请求2和请求3,其中请求1、请求2来自存储客户端,请求3来自共享总线,则裁决器1137会优先将请求3确定为优先响应的数据处理请求,并将请求1和请求2的等待次数加1,在裁决器1137下一次裁决时,如果数据缓冲器1136中依然存在来自共享总线的数据处理请求时,则裁决器1137还是优先响应来自共享总线的数据处理请求,并再次将每个来自的存储客户端的数据处理请求的等待次数加1,直至数据缓冲器1136中没有来自共享总线的数据处理请求时,在当前数据缓冲器1136中选择等待次数最大的数据处理请求作为优先响应的数据处理请求。可选的,为了防止某个数据处理请求在数据缓冲器1136等待时间过长,可以为数据处理请求设置一个等待次数的上限阈值,当某一数据处理请求的等待次数达到或超过该上限阈值时,则裁决器1137将该数据处理请求确定为当前优先响应的数据处理请求。
第二数据选择器1138用于将第四端口1134接收到的读回数据输出至与第一端口1131连接的存储客户端,或者通过第三端口1133输出至共享总线,还用于将第二端口1132接收到的读回数据输出至与第一端口1131连接的存储客户端。
其中,第一数据选择器1135可以基于哈希函数来确定该数据处理请求路由至缓存路由,还是路由至数据缓冲器1136。示例的,数据处理请求中通常包含要访问的缓存地址,该缓存地址通常可以通过预设比特位的二进制数表征,本实施例中的哈希函数可以对该缓存地址的二进制数进行异或运算,从而得到一个新的二进制数,该新的二进制数即可作为目标缓存地址,从而依据该目标缓存地址将该数据处理请求路由至对应的目标缓存单元。通过上述方式,可以控制使访问本基础核心模块的数据处理请求被路由至本基础核心模块的缓存网络中,而访问另一基础核心模块的数据处理请求被路由至数据缓冲器1136中以便通过共享总线到达另一基础核心模块。
可选的,图6是本申请实施例示出的另一种转换开关的结构示意图,如图6所示,转换开关113中还设置有请求输入寄存器(in_request)11391,两个请求数据寄存器(request_data)11392a和11392b,请求输出寄存器(out_request)11393,四个读回数据寄存器(read_ret)11394a、11394b、11394c和11394d,两个总线寄存器11395a和11395b,以及确认消息寄存器(ack)11396,这些寄存器均可以为一级寄存器。
其中,请求输入寄存器11391与第一端口1131和第一数据选择器1135连接,用于将第一端口1131接收到的存储客户端的读请求或写请求发送至第一数据选择器1135,请求输出寄存器11393与第一数据选择器1135和第二端口1132连接,用于接收第一数据选择器1135发送的读请求或写请求并通过第二端口1132输出至缓存路由;请求数据寄存11392a与第一端口1131和第一数据选择器1135连接,用于将第一端口1131接收到的写请求对应的写入数据发送至第一数据选择器1135,请求数据寄存11392b与第二端口1132和第一数据选择器1135连接,用于接收第一数据选择器1135发送的写入数据并通过第二端口1132输出至缓存路由;确认消息寄存器11396与第二端口1132和第一数据选择器1135连接,用于接收缓存路由返回的写确认消息,并将写确认消息发送至第一数据选择器1135;总线寄存器11395a与第三端口1133和裁决器1137连接,用于将第三端口1133接收到的共享总线传来的读请求或写请求(及写入数据)发送至裁决器1137,总线寄存器11395b与第四端口1134和裁决器1137连接,用于将裁决器1137发送的读请求或写请求(及写入数据)通过第四端口1134发送至共享总线。
读回数据寄存器11394a、11394b、11394c和11394d分别与第一端口1131、第二端口1132、第三端口1133和第四端口1134连接,读回数据寄存器11394a、11394b、11394c和11394d均与第二数据选择器1138连接,其中读回数据寄存器11394b用于将第二端口1132接收到的来自缓存路由的读回数据发送至第二数据选择器1138,读回数据寄存器11394d用于将第四端口1134接收到的来自共享总线的读回数据发送至第二数据选择器1138,读回数据寄存器11394a用于接收第二数据选择器1138发送的来自缓存路由的读回数据,并通过第一端口1131将读回数据返回至存储客户端,读回数据寄存器11394c用于接收第二数据选择器1138发送的来自共享总线的读回数据,并通过第三端口1131将读回数据发送至共享总线。
基于上述的转换开关结构,在第一数据处理请求为包含写入数据的写请求时,第一基础核心模块110a中的任一转换开关113a可以用于:
在接收到第一数据处理请求时,将第一数据处理请求存储在数据缓冲器1136,并向发起第一数据处理请求的存储客户端返回针对第一数据处理请求的写确认消息。
在第一数据处理请求满足输出条件时,通过裁决器1137将第一数据处理请求通过第四端口1134输出至共享总线115a,以通过共享总线115a将第一数据处理请求传输至第二基础核心模块110b的缓存核心116b,以使第二基础核心模块110b的缓存核心116b基于第一数据处理请求,通过第二基础核心模块110b的缓存网络112b,将写入数据写入第一目标缓存单元中。
在上述实施方式中,能够在接收到存储客户端的包含写入数据的写请求时,将写请求存储在数据缓冲器,并立即向发起请求的存储客户端返回针对该写请求的写确认消息,而实际的写请求和写入数据在被裁决器输出至共享总线后,由共享总线传输至第二基础核心模块的缓存核心,第二基础核心模块的缓存核心基于该写请求,通过第二基础核心模块的缓存网络,将写入数据写入需要访问的目标缓存单元中,能够实现对存储客户端的写请求的快速响应。
图7是本申请实施例提供的一种数据处理方法的流程图,该方法可以应用于上述任一实施例所述的数据处理装置100,参见图7,该数据处理方法可以包括:
步骤S101,第一基础核心模块中的任一转换开关在接收到访问第二基础核心模块中的第一目标缓存单元的第一数据处理请求后,通过第一基础核心模块的共享总线将第一数据处理请求传输至第二基础核心模块的核心缓存。
步骤S102,第二基础核心模块的核心缓存基于第一数据处理请求访问第一目标缓存单元。
上述步骤S101至S102的实施方式,与上述图1所示的实施例中示出的实施方式相同,可以参照上述图1所示的实施例中示出的实施方式,不再赘述。
通过上述实施方式,当一基础核心模块中的任一转换开关在接收到访问另一基础核心模块中的目标缓存单元的数据处理请求后,该转换开关能够通过其连接的共享总线将该数据处理请求传输至与共享总线连接的另一基础核心模块的核心缓存,从而实现了将该数据处理请求传输到另一基础核心模块,此时已传输至该核心缓存中的该数据处理请求就能够通过该核心缓存所连接的缓存网络,访问到目标缓存单元,从而通过上述的基于共享总线的架构,实现了一个基础核心模块中的计算引擎对另一基础核心模块中的目标缓存单元的访问,而在一个基础核心模块中由于没有对缓存网络进行扩展,计算引擎的访问路径没有延长,从而对于一个基础核心模块的性能没有影响,也没有增加工艺复杂度。因此,能够在不影响性能、不提高工艺复杂度的情况下实现对计算引擎扩展。
可选的,基于图2所示的数据处理装置100,第二基础核心模块的共享总线与第一基础核心模块的核心缓存连接,图8是本申请实施例提供的另一种数据处理方法的流程图,参见图8,该方法还可以包括:
步骤S103,第二基础核心模块中的任一转换开关在接收到访问第一基础核心模块中的第二目标缓存单元的第二数据处理请求后,通过第二基础核心模块的共享总线将第二数据处理请求传输至第一基础核心模块的核心缓存。
步骤S104,第一基础核心模块的核心缓存基于第二数据处理请求访问第二目标缓存单元。
上述步骤S103至S104的实施方式,与上述图2所示的实施例中示出的实施方式相同,可以参照上述图2所示的实施例中示出的实施方式,不再赘述。
由此可见,在上述实施方式中,在第一基础核心模块的共享总线与第二基础核心模块的核心缓存连接基础上,第二基础核心模块的共享总线也与第一基础核心模块的核心缓存连接,从而使两个基础核心模块相互连接,能够在不影响性能、不提高工艺复杂度的情况下,使相互连接的两个基础核心模块中的任一基础核心模块中的计算引擎,对另一基础核心模块中的目标缓存单元的访问。
可选的,在第一数据处理请求为读请求时,步骤S102所述的第二基础核心模块的核心缓存基于第一数据处理请求访问第一目标缓存单元,可以包括:
第二基础核心模块的核心缓存在接收到第一数据处理请求,且第二基础核心模块的核心缓存中存储有第一数据处理请求所请求的第一目标数据时,将第一目标数据通过第一基础核心模块的共享总线返回至发送第一数据处理请求的存储客户端。
第二基础核心模块的核心缓存在接收到第一数据处理请求,且第二基础核心模块的核心缓存中不存在第一目标数据时,基于第一数据处理请求,通过第二基础核心模块的缓存网络,从第一目标缓存单元中获取第一目标数据,并将第一目标数据通过第一基础核心模块的共享总线返回至发送第一数据处理请求的存储客户端。
通过上述实施方式,实现了第一基础核心模块中的存储客户端对第二基础核心模块中的缓存单元的访问。同理,步骤S104所述的第一基础核心模块的核心缓存基于第二数据处理请求访问第二目标缓存单元,可以包括:
第一基础核心模块的核心缓存在接收到第二数据处理请求,且第一基础核心模块的核心缓存中存储有第二数据处理请求所请求的第二目标数据时,将第二目标数据通过第二基础核心模块的共享总线返回至发送第二数据处理请求的存储客户端。
第一基础核心模块的核心缓存在接收到第二数据处理请求,且第一基础核心模块的核心缓存中不存在第二目标数据时,基于第二数据处理请求,通过第一基础核心模块的缓存网络,从第二目标缓存单元中获取第二目标数据,并将第二目标数据通过第二基础核心模块的共享总线返回至发送第二数据处理请求的存储客户端。
上述步骤与图3或图4所示的实施例中示出的实施方式相同,可以参照上述图3或图4所示的实施例中示出的实施方式,不再赘述。
由此可见,上述实施方式中,能够实现第二基础核心模块中的存储客户端对第一基础核心模块中的缓存单元的访问。同理,上述的数据处理装置100中的相互连接的任意两个基础核心模块均可以通过上述的实施方式实现对另一个基础核心模块中的缓存单元的访问。
可选的,基于图5或图6所示的转换开关,在第一数据处理请求为包含写入数据的写请求时,步骤S102所述的第二基础核心模块的核心缓存基于第一数据处理请求访问第一目标缓存单元,可以包括:
第一基础核心模块中的任一转换开关在接收到第一数据处理请求时,将第一数据处理请求存储在数据缓冲器,并向发起第一数据处理请求的存储客户端返回针对第一数据处理请求的写确认消息。
在第一数据处理请求满足输出条件时,该任一转换开关中的裁决器将第一数据处理请求通过该任一转换开关的第四端口输出至共享总线,以通过共享总线将第一数据处理请求传输至第二基础核心模块的缓存核心。
第二基础核心模块的缓存核心基于第一数据处理请求,通过第二基础核心模块的缓存网络,将写入数据写入第一目标缓存单元中。
在上述实施方式中,能够在接收到存储客户端的包含写入数据的写请求时,将写请求存储在数据缓冲器,并立即向发起请求的存储客户端返回针对该写请求的写确认消息,而实际的写请求和写入数据在被裁决器输出至共享总线后,由共享总线传输至第二基础核心模块的缓存核心,第二基础核心模块的缓存核心基于该写请求,通过第二基础核心模块的缓存网络,将写入数据写入需要访问的目标缓存单元中,能够实现对存储客户端的写请求的快速响应。
本申请实施例还提供一种处理器,该处理器可以包括上述的任一实施例所提供的数据处理装置100。该处理器可以为GPU或CPU,或者可以是上述的DCU,或者可以是集成了GPU(或DCU)和CPU的处理器(可以理解为GPU或DCU与CPU位于一个芯片上)。
在另一种实施方式中,本申请实施例还提供一种芯片,该芯片可以包括上述的任一实施例所提供的数据处理装置100,该数据处理装置100形成在同一半导体基板上。其中,可以理解的是,在该芯片上,数据处理装置100中包含的所有基础核心模块均形成在同一半导体基板上。
本申请实施例还提供另一种处理器,该处理器可以包括上述的芯片,该处理器可以为GPU或CPU,或者可以是上述的DCU,或者可以是集成了GPU(或DCU)和CPU的处理器(可以理解为GPU或DCU与CPU位于一个芯片上)。
图9是本申请实施例提供的一种电子设备200的框图,参见图9,该电子设备200可以包括:存储器201和处理器202,存储器201和处理器202可以通过总线连接。该存储器201中存储有计算机程序,该计算机程序被处理器202执行时,能够实现上述的数据处理方法。其中处理器202可以为上述的包括数据处理装置100的处理器。存储器201可以是,但不限于,随机存取存储器,只读存储器,可编程只读存储器,可擦除可编程只读存储器,电可擦除可编程只读存储器等。该电子设备200可以是但不限于,智能手机、个人电脑(PersonalComputer,PC)、平板电脑、个人数字助理(Personal Digital Assistant,PDA)、移动上网设备(Mobile Internet Device,MID)等。
本申请实施例还提供一种存储介质,该存储介质中存储有计算机程序,所述计算机程序被处理器执行时,能够实现上述的数据处理方法。
在本申请所提供的实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置和方法实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实施方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (13)

1.一种数据处理装置,其特征在于,所述数据处理装置包括:至少两个基础核心模块,每个所述基础核心模块包括:多个计算引擎、缓存网络、多个转换开关、多个缓存单元、共享总线以及核心缓存;
每个所述基础核心模块中,所述多个缓存单元以及所述核心缓存分别与所述缓存网络连接,所述多个转换开关通过所述共享总线串行连接,每个计算引擎包括多个存储客户端,所述缓存网络包括呈网格状排布的多个缓存路由,所述缓存网络中的每个缓存路由与相邻的每个缓存路由连接,所述多个计算引擎包括的多个存储客户端与所述多个转换开关一一对应,每个存储客户端通过对应的转换开关与所述缓存网络中的一个缓存路由连接,所述核心缓存与所述缓存网络中的一个缓存路由连接;
所述至少两个基础核心模块中的第一基础核心模块的共享总线与第二基础核心模块的核心缓存连接,所述第一基础核心模块中的任一转换开关用于在接收到访问所述第二基础核心模块中的第一目标缓存单元的第一数据处理请求后,通过所述第一基础核心模块的共享总线将所述第一数据处理请求传输至所述第二基础核心模块的核心缓存,所述第二基础核心模块的核心缓存用于基于所述第一数据处理请求访问所述第一目标缓存单元;
所述第一数据处理请求为读请求时,所述第二基础核心模块的核心缓存用于:在接收到所述第一数据处理请求,且所述第二基础核心模块的核心缓存中存储有所述第一数据处理请求所请求的第一目标数据时,将所述第一目标数据通过所述第一基础核心模块的共享总线返回至发送所述第一数据处理请求的存储客户端;在接收到所述第一数据处理请求,且所述第二基础核心模块的核心缓存中不存在所述第一目标数据时,基于所述第一数据处理请求,通过所述第二基础核心模块的缓存网络,从所述第一目标缓存单元中获取所述第一目标数据,并将所述第一目标数据通过所述第一基础核心模块的共享总线返回至发送所述第一数据处理请求的存储客户端。
2.根据权利要求1所述的数据处理装置,其特征在于,所述第二基础核心模块的共享总线与所述第一基础核心模块的核心缓存连接,所述第二基础核心模块中的任一转换开关用于在接收到访问所述第一基础核心模块中的第二目标缓存单元的第二数据处理请求后,通过所述第二基础核心模块的共享总线将所述第二数据处理请求传输至所述第一基础核心模块的核心缓存,所述第一基础核心模块的核心缓存用于基于所述第二数据处理请求访问所述第二目标缓存单元。
3.根据权利要求1所述的数据处理装置,其特征在于,每个转换开关包括第一端口、第二端口、第三端口、第四端口、第一数据选择器、数据缓冲器、裁决器和第二数据选择器;
其中,所述第一端口用于与对应的存储客户端连接,所述第二端口用于与一个缓存路由连接,所述第三端口用于通过共享总线与上一跳转换开关连接,所述第四端口用于通过共享总线与下一跳转换开关或另一基础核心模块的核心缓存连接,所述第一数据选择器分别与所述第一端口、所述第二端口和所述数据缓冲器连接,所述裁决器分别与所述数据缓冲器、所述第三端口和所述第四端口连接,所述第二数据选择器分别与所述第一端口、所述第二端口、所述第三端口和所述第四端口连接;
所述第一数据选择器用于将所述第一端口接收到的存储客户端的数据处理请求发送至与所述第二端口连接的缓存路由,或者发送至所述数据缓冲器;
所述裁决器用于接收所述数据缓冲器和所述第三端口发送的数据处理请求,并在接收到的数据处理请求为多个时,确定多个数据处理请求中优先响应的数据处理请求,并将所述优先响应的数据处理请求通过所述第四端口输出至共享总线;
所述第二数据选择器用于将所述第四端口接收到的读回数据输出至与所述第一端口连接的存储客户端,或者通过所述第三端口输出至共享总线,还用于将所述第二端口接收到的读回数据输出至与所述第一端口连接的存储客户端。
4.根据权利要求3所述的数据处理装置,其特征在于,所述第一数据处理请求为包含写入数据的写请求,所述第一基础核心模块中的任一转换开关用于:
在接收到所述第一数据处理请求时,将所述第一数据处理请求存储在所述数据缓冲器,并向发起所述第一数据处理请求的存储客户端返回针对所述第一数据处理请求的写确认消息;
在所述第一数据处理请求满足输出条件时,通过所述裁决器将所述第一数据处理请求通过所述第四端口输出至共享总线,以通过所述共享总线将所述第一数据处理请求传输至所述第二基础核心模块的缓存核心,以使所述第二基础核心模块的缓存核心基于所述第一数据处理请求,通过所述第二基础核心模块的缓存网络,将所述写入数据写入所述第一目标缓存单元中。
5.一种数据处理方法,其特征在于,应用于权利要求1-4任一项所述的数据处理装置,所述方法包括:
所述第一基础核心模块中的任一转换开关在接收到访问所述第二基础核心模块中的第一目标缓存单元的第一数据处理请求后,通过所述第一基础核心模块的共享总线将所述第一数据处理请求传输至所述第二基础核心模块的核心缓存;
所述第二基础核心模块的核心缓存基于所述第一数据处理请求访问所述第一目标缓存单元。
6.根据权利要求5所述的数据处理方法,其特征在于,所述第二基础核心模块的共享总线与所述第一基础核心模块的核心缓存连接,所述方法还包括:
所述第二基础核心模块中的任一转换开关在接收到访问所述第一基础核心模块中的第二目标缓存单元的第二数据处理请求后,通过所述第二基础核心模块的共享总线将所述第二数据处理请求传输至所述第一基础核心模块的核心缓存;
所述第一基础核心模块的核心缓存基于所述第二数据处理请求访问所述第二目标缓存单元。
7.根据权利要求5或6所述的数据处理方法,其特征在于,所述第一数据处理请求为读请求,所述第二基础核心模块的核心缓存基于所述第一数据处理请求访问所述第一目标缓存单元,包括:
所述第二基础核心模块的核心缓存在接收到所述第一数据处理请求,且所述第二基础核心模块的核心缓存中存储有所述第一数据处理请求所请求的第一目标数据时,将所述第一目标数据通过所述第一基础核心模块的共享总线返回至发送所述第一数据处理请求的存储客户端;
在接收到所述第一数据处理请求,且所述第二基础核心模块的核心缓存中不存在所述第一目标数据时,基于所述第一数据处理请求,通过所述第二基础核心模块的缓存网络,从所述第一目标缓存单元中获取所述第一目标数据,并将所述第一目标数据通过所述第一基础核心模块的共享总线返回至发送所述第一数据处理请求的存储客户端。
8.根据权利要求5所述的数据处理方法,其特征在于,所述第一数据处理请求为包含写入数据的写请求,所述第二基础核心模块的核心缓存基于所述第一数据处理请求访问所述第一目标缓存单元,包括:
所述第一基础核心模块中的任一转换开关在接收到所述第一数据处理请求时,将所述第一数据处理请求存储在数据缓冲器,并向发起所述第一数据处理请求的存储客户端返回针对所述第一数据处理请求的写确认消息;
在所述第一数据处理请求满足输出条件时,所述任一转换开关中的裁决器将所述第一数据处理请求通过所述任一转换开关的第四端口输出至共享总线,以通过所述共享总线将所述第一数据处理请求传输至所述第二基础核心模块的缓存核心;
所述第二基础核心模块的缓存核心基于所述第一数据处理请求,通过所述第二基础核心模块的缓存网络,将所述写入数据写入所述第一目标缓存单元中。
9.一种处理器,其特征在于,包括权利要求1-4任一项所述的数据处理装置。
10.一种芯片,其特征在于,包括权利要求1-4任一项所述的数据处理装置,所述数据处理装置形成在同一半导体基板上。
11.一种处理器,其特征在于,包括权利要求10所述的芯片。
12.一种电子设备,其特征在于,包括:存储器和处理器,所述存储器中存储有计算机程序,所述计算机程序被所述处理器执行时,实现权利要求5-8任一项所述的数据处理方法。
13.一种存储介质,其特征在于,所述存储介质中存储有计算机程序,所述计算机程序被处理器执行时,实现权利要求5-8任一项所述的数据处理方法。
CN201911272283.4A 2019-12-11 2019-12-11 数据处理装置、方法、芯片、处理器、设备及存储介质 Active CN111080510B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201911272283.4A CN111080510B (zh) 2019-12-11 2019-12-11 数据处理装置、方法、芯片、处理器、设备及存储介质
PCT/CN2020/114010 WO2021114768A1 (zh) 2019-12-11 2020-09-08 数据处理装置、方法、芯片、处理器、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911272283.4A CN111080510B (zh) 2019-12-11 2019-12-11 数据处理装置、方法、芯片、处理器、设备及存储介质

Publications (2)

Publication Number Publication Date
CN111080510A CN111080510A (zh) 2020-04-28
CN111080510B true CN111080510B (zh) 2021-02-12

Family

ID=70314023

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911272283.4A Active CN111080510B (zh) 2019-12-11 2019-12-11 数据处理装置、方法、芯片、处理器、设备及存储介质

Country Status (2)

Country Link
CN (1) CN111080510B (zh)
WO (1) WO2021114768A1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111080510B (zh) * 2019-12-11 2021-02-12 海光信息技术股份有限公司 数据处理装置、方法、芯片、处理器、设备及存储介质
CN111881078B (zh) * 2020-07-17 2022-04-19 上海芷锐电子科技有限公司 基于gpgpu芯片的多用户通用计算处理方法和系统
CN112231243B (zh) * 2020-10-29 2023-04-07 海光信息技术股份有限公司 一种数据处理方法、处理器及电子设备
CN114721996B (zh) * 2022-06-09 2022-09-16 南湖实验室 一种分布式原子操作的实现方法与实现装置

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7076609B2 (en) * 2002-09-20 2006-07-11 Intel Corporation Cache sharing for a chip multiprocessor or multiprocessing system
CN100492274C (zh) * 2007-08-17 2009-05-27 杭州华三通信技术有限公司 存储控制系统及其处理节点
CN101794271B (zh) * 2010-03-31 2012-05-23 华为技术有限公司 多核内存一致性的实现方法和装置
KR101639854B1 (ko) * 2011-05-20 2016-07-14 소프트 머신즈, 인크. 복수의 엔진에 의해 명령어 시퀀스들의 실행을 지원하기 위한 상호접속 구조
TWI603198B (zh) * 2011-05-20 2017-10-21 英特爾股份有限公司 以複數個引擎作資源與互連結構的分散式分配以支援指令序列的執行
CN102801600B (zh) * 2011-05-24 2016-04-20 清华大学 片上网络中缓存一致性的维护方法和片上网络路由
US20140201326A1 (en) * 2013-01-16 2014-07-17 Marvell World Trade Ltd. Interconnected ring network in a multi-processor system
CN105808497B (zh) * 2014-12-30 2018-09-21 华为技术有限公司 一种数据处理方法
CN107291629B (zh) * 2016-04-12 2020-12-25 华为技术有限公司 一种用于访问内存的方法和装置
CN111080510B (zh) * 2019-12-11 2021-02-12 海光信息技术股份有限公司 数据处理装置、方法、芯片、处理器、设备及存储介质

Also Published As

Publication number Publication date
WO2021114768A1 (zh) 2021-06-17
WO2021114768A8 (zh) 2021-07-15
CN111080510A (zh) 2020-04-28

Similar Documents

Publication Publication Date Title
CN111080510B (zh) 数据处理装置、方法、芯片、处理器、设备及存储介质
CN105408880B (zh) 对共享存储装置的持久存储器的直接访问
US20160314018A1 (en) Method for work scheduling in a multi-chip system
US8848703B2 (en) On-chip router and multi-core system using the same
US10402327B2 (en) Network-aware cache coherence protocol enhancement
US9304924B2 (en) Cache coherent handshake protocol for in-order and out-of-order networks
JP2002304328A (ja) マルチプロセッサシステム用コヒーレンスコントローラ、およびそのようなコントローラを内蔵するモジュールおよびマルチモジュールアーキテクチャマルチプロセッサシステム
WO2015134100A1 (en) Method and apparatus for memory allocation in a multi-node system
JPH0776942B2 (ja) マルチプロセッサ・システムおよびそのデータ伝送装置
JP2010218364A (ja) 情報処理システム、通信制御装置および方法
US20150254183A1 (en) Inter-chip interconnect protocol for a multi-chip system
KR20190033284A (ko) PCIe P2P 접속된 스토리지 장치들 사이의 데이터 전송 방법 및 시스템
JP6514329B2 (ja) メモリアクセス方法、スイッチ、およびマルチプロセッサシステム
CN104731733A (zh) 用于跨数据处理系统的接口的频率确定的系统和方法
CN110119304B (zh) 一种中断处理方法、装置及服务器
US20150186277A1 (en) Cache coherent noc with flexible number of cores, i/o devices, directory structure and coherency points
KR101087811B1 (ko) 캐시 라인 소유권 이전 방법 및 캐시 라인 소유권 이전 장치
US10592465B2 (en) Node controller direct socket group memory access
EP3036648B1 (en) Enhanced data transfer in multi-cpu systems
US20150074316A1 (en) Reflective memory bridge for external computing nodes
CN115361336B (zh) 具有缓存的路由器、路由交换网络系统、芯片及路由方法
JP2016218635A (ja) 情報処理装置、メモリ制御装置、および情報処理装置の制御方法
CN111858096B (zh) 一种基于目录的最近距离cache监听读的方法及系统
WO2019149031A1 (zh) 应用于节点系统的数据处理方法及装置
KR100950356B1 (ko) 다중 코히런시 단위들을 지원하는 데이터 전송 유닛

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: 300450 Tianjin Binhai New Area Huayuan Industrial Zone Haitai West Road 18 North 2-204 Industrial Incubation-3-8

Applicant after: Haiguang Information Technology Co., Ltd

Address before: 1809-1810, block B, blue talent port, No.1, Intelligent Island Road, high tech Zone, Qingdao, Shandong Province

Applicant before: HAIGUANG INFORMATION TECHNOLOGY Co.,Ltd.

GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20210401

Address after: 610000 China (Sichuan) pilot Free Trade Zone, Chengdu high tech Zone

Patentee after: CHENGDU HAIGUANG MICROELECTRONICS TECHNOLOGY Co.,Ltd.

Address before: Industrial incubation-3-8, North 2-204, No. 18, Haitai West Road, Huayuan Industrial Zone, Binhai New Area, Tianjin 300450

Patentee before: Haiguang Information Technology Co., Ltd