CN111124953B - 数据交换方法、装置、处理器及计算机系统 - Google Patents

数据交换方法、装置、处理器及计算机系统 Download PDF

Info

Publication number
CN111124953B
CN111124953B CN201911317544.XA CN201911317544A CN111124953B CN 111124953 B CN111124953 B CN 111124953B CN 201911317544 A CN201911317544 A CN 201911317544A CN 111124953 B CN111124953 B CN 111124953B
Authority
CN
China
Prior art keywords
destination
source
data
storage unit
address
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
CN201911317544.XA
Other languages
English (en)
Other versions
CN111124953A (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 CN201911317544.XA priority Critical patent/CN111124953B/zh
Publication of CN111124953A publication Critical patent/CN111124953A/zh
Priority to PCT/CN2020/114006 priority patent/WO2021120714A1/zh
Application granted granted Critical
Publication of CN111124953B publication Critical patent/CN111124953B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0877Cache access modes
    • 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/1668Details of memory controller
    • G06F13/1673Details of memory controller using buffers
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Information Transfer Systems (AREA)

Abstract

本申请提供一种数据交换方法、装置、处理器及计算机系统,包括:生成至少一个源地址读请求,并向源存储单元发送至少一个源地址读请求,以便源存储单元将对应的源数据返回给第一缓冲单元;生成至少一个目的地址读请求,并向目的存储单元发送至少一个目的地址读请求,以便目的存储单元将对应的目的数据返回给第二缓冲单元;确定源数据能传输到第一缓冲单元,且目的数据能传输到第二缓冲单元;根据环形缓冲单元收到的数据,生成对应的地址写请求;利用地址写请求,将对应的数据向对应的存储单元的去向地址发送。本申请利用环形缓冲单元便实现了源存储单元与目的存储单元的数据交换,与现有技术相比,减小了功耗,节约了成本。

Description

数据交换方法、装置、处理器及计算机系统
技术领域
本申请涉及数据处理技术领域,具体而言,涉及一种数据交换方法、装置、处理器及计算机系统。
背景技术
对于图形处理器(Graphics Processing Unit,简称GPU)等电子设备,常常会产生交换电子设备的内存中的数据的需求。例如,在高度并行线性系统软件包(HighlyParallel Linear system package,简称HPL)中,通常需要搜索主分量,并交换当前行和具有主分量的行;或者在多核系统中,需要在每个核上做子矩阵操作,然后交换上述核的子矩阵。
现有技术中,在进行数据交换时,常常需要引入新的内核,这样容易造成大量功耗。
发明内容
本申请实施例的目的在于提供一种数据交换方法、装置、处理器及计算机系统,用以改善现有技术容易造成大量功耗的问题。
第一方面,本申请实施例提供了一种数据交换方法,用于通过环形缓冲单元交换源存储单元与目的存储单元的数据,所述环形缓冲单元包括第一缓冲单元和第二缓冲单元,所述方法包括:生成至少一个源地址读请求,并向所述源存储单元发送所述至少一个源地址读请求,以便所述源存储单元将每个源地址读请求对应的源数据返回给所述第一缓冲单元;生成至少一个目的地址读请求,并向所述目的存储单元发送所述至少一个目的地址读请求,以便所述目的存储单元将每个目的地址读请求对应的目的数据返回给所述第二缓冲单元;确定所述源数据能传输到所述第一缓冲单元,且所述目的数据能传输到所述第二缓冲单元;根据所述环形缓冲单元收到的数据,生成对应的地址写请求,其中,所述地址写请求包括对应的数据的去向地址,所述第一缓冲单元收到的数据所对应的去向地址位于所述目的存储单元,所述第二缓冲单元收到的数据所对应的去向地址位于所述源存储单元;利用所述地址写请求,将对应的所述数据向对应的存储单元的所述去向地址发送。
在上述的实施方式中,生成源地址读请求,并向源存储单元请求对应的源数据,以便源存储单元将对应的源数据返回给环形缓冲单元的第一缓冲单元;生成目的地址读请求,并向目的存储单元请求对应的目的数据,以便目的存储单元将对应的目的数据返回给环形缓冲单元的第二缓冲单元。在确定源数据均能够被传输到第一缓冲单元,且目的数据均能够被传输到第二缓冲单元之后。对第一缓冲单元收到的源数据生成对应的地址写请求,从而将第一缓冲单元收到的源数据发送到目的存储单元;对第二缓冲单元收到的目的数据也生成对应的地址写请求,从而将第二缓冲单元收到的目的数据发送到源存储单元。本申请利用环形缓冲单元便实现了源存储单元与目的存储单元的数据交换,与现有技术相比,减小了功耗,节约了成本。
在一个可能的设计中,至少一个所述源数据返回至所述第一缓冲单元,所述根据所述环形缓冲单元收到的数据,生成对应的地址写请求,包括:根据所述第一缓冲单元收到的源数据,生成对应的目的地址写请求,其中,目的地址写请求包括对应的源数据的去向地址;所述利用所述地址写请求,将对应的所述数据向对应的存储单元的所述去向地址发送,包括:利用所述目的地址写请求,将对应的所述源数据向所述目的存储单元的所述去向地址发送。
在上述的实施方式中,对于第一缓冲单元收到的源数据,GPU可以生成目的地址写请求,目的地址写请求包括该源数据的去向地址,该去向地址位于目的存储单元,从而实现将第一缓冲单元收到的源数据写入目的存储单元。第一缓冲单元收到的源数据来自于源存储单元,由此,利用第一缓冲单元实现了数据从源存储单元向目的存储单元的转移过程。
在一个可能的设计中,至少一个所述目的数据返回至所述第二缓冲单元,所述根据所述环形缓冲单元收到的数据,生成对应的地址写请求,包括:根据所述第二缓冲单元收到的目的数据,生成对应的源地址写请求,其中,源地址写请求包括对应的目的数据的去向地址;所述利用所述地址写请求,将对应的所述数据向对应的存储单元的所述去向地址发送,包括:利用所述源地址写请求,将对应的所述目的数据向所述源存储单元的所述去向地址发送。
在上述的实施方式中,对于第二缓冲单元收到的目的数据,GPU可以生成源地址写请求,源地址写请求包括该目的数据的去向地址,该去向地址位于源存储单元,从而实现将第二缓冲单元收到的目的数据写入源存储单元。第二缓冲单元收到的目的数据来自于目的存储单元,由此,利用第二缓冲单元实现了数据从目的存储单元向源存储单元的转移过程。
在一个可能的设计中,所述源存储单元向所述第一缓冲单元发送源数据的通信接口与所述目的存储单元向所述第二缓冲单元发送目的数据的通信接口相同;步骤:生成至少一个目的地址读请求,并向所述目的存储单元发送所述至少一个目的地址读请求在步骤:生成至少一个源地址读请求,并向所述源存储单元发送所述至少一个源地址读请求之后执行。
在上述的实施方式中,向目的存储单元发送目的地址读请求的目的在于使目的存储单元返回目的数据,同理,向源存储单元发送源地址读请求的目的在于使源存储单元返回源数据。在源存储单元传输数据的通信接口与目的存储单元传输数据的通信接口相同的情况下,若目的存储单元返回目的数据与源存储单元返回源数据并行进行,则会交织占用同一通信接口,从而导致传输效率变低,因此,目的存储单元返回目的数据与源存储单元返回源数据不在同一时间段进行,利于提高传输效率。
在一个可能的设计中,所述源存储单元向所述第一缓冲单元发送源数据的通信接口与所述目的存储单元向所述第二缓冲单元发送目的数据的通信接口不相同;步骤:生成至少一个目的地址读请求,并向所述目的存储单元发送所述至少一个目的地址读请求与步骤:生成至少一个源地址读请求,并向所述源存储单元发送所述至少一个源地址读请求并行执行。
在上述的实施方式中,向目的存储单元发送目的地址读请求的目的在于使目的存储单元返回目的数据,同理,向源存储单元发送源地址读请求的目的在于使源存储单元返回源数据。在源存储单元传输数据的通信接口与目的存储单元传输数据的通信接口不相同的情况下,目的存储单元返回目的数据与源存储单元返回源数据并行进行互不干扰,都能维持较高的传输速率,从而提高了数据传输的效率。
在一个可能的设计中,所述数据交换方法在有序模式下进行,所述确定所述源数据能传输到所述第一缓冲单元,且所述目的数据能传输到所述第二缓冲单元,包括:确定所述至少一个源地址读请求均向所述源存储单元发送,且所述至少一个目的地址读请求均向所述目的存储单元发送。
在上述的实施方式中,确定至少一个源地址读请求均向所述源存储单元发送,即可确定上述的每个源地址读请求对应的源数据能够被传输回第一缓冲单元;确定至少一个目的地址读请求均向目的存储单元发送,即可确定上述的每个目的地址读请求对应的目的数据能够被传输回第二缓冲单元,从而避免数据尚未传输到缓冲单元时就被对端的发送过来的数据覆盖掉。
在一个可能的设计中,所述数据交换方法在无序模式下进行,所述确定所述源数据能传输到所述第一缓冲单元,且所述目的数据能传输到所述第二缓冲单元,包括:确定所述源数据均传输至所述第一缓冲单元,且所述目的数据均传输至所述第二缓冲单元。
在上述的实施方式中,数据交换方法在无序模式下进行,读请求与写请求没有顺序的限制,故在源数据均传输至第一缓冲单元,且目的数据均传输至第二缓冲单元后,才能够确定源数据能传输到所述第一缓冲单元,且所述目的数据能传输到所述第二缓冲单元;从而避免数据尚未传输到缓冲单元时就被对端的发送过来的数据覆盖掉。
第二方面,本申请实施例提供了一种数据交换装置,用于通过环形缓冲单元交换源存储单元与目的存储单元的数据,所述环形缓冲单元包括第一缓冲单元和第二缓冲单元,所述装置包括:源读请求生成模块,用于生成至少一个源地址读请求,并向所述源存储单元发送所述至少一个源地址读请求,以便所述源存储单元将每个源地址读请求对应的源数据返回给所述第一缓冲单元;目的读请求生成模块,用于生成至少一个目的地址读请求,并向所述目的存储单元发送所述至少一个目的地址读请求,以便所述目的存储单元将每个目的地址读请求对应的目的数据返回给所述第二缓冲单元;数据传输确定模块,用于确定所述源数据能传输到所述第一缓冲单元,且所述目的数据能传输到所述第二缓冲单元;写请求生成模块,用于根据所述环形缓冲单元收到的数据,生成对应的地址写请求,其中,所述地址写请求包括对应的数据的去向地址,所述第一缓冲单元收到的数据所对应的去向地址位于所述目的存储单元,所述第二缓冲单元收到的数据所对应的去向地址位于所述源存储单元;数据发送模块,用于利用所述地址写请求,将对应的所述数据向对应的存储单元的所述去向地址发送。
第三方面,本申请实施例提供了一种处理器,包括环形缓冲单元、源存储单元、目的存储单元、源读地址逻辑生成电路以及目的读地址逻辑生成电路,所述源读地址逻辑生成电路与所述源存储单元连接,所述目的读地址逻辑生成电路与所述目的存储单元连接,所述环形缓冲单元包括第一缓冲单元和第二缓冲单元,所述源存储单元通过对应的通信接口与所述第一缓冲单元和第二缓冲单元连接,所述目的存储单元通过对应的通信接口与所述第一缓冲单元和所述第二缓冲单元连接,所述处理器用于通过所述第一缓冲单元和第二缓冲单元交换源存储单元与目的存储单元的数据;所述源读地址逻辑生成电路用于生成至少一个源地址读请求,并向所述源存储单元发送所述至少一个源地址读请求,以便所述源存储单元将每个源地址读请求对应的源数据返回给所述第一缓冲单元;所述目的读地址逻辑生成电路用于生成至少一个目的地址读请求,并向所述目的存储单元发送所述至少一个目的地址读请求,以便所述目的存储单元将每个目的地址读请求对应的目的数据返回给所述第二缓冲单元;所述处理器用于确定所述源数据能传输到所述第一缓冲单元,且所述目的数据能传输到所述第二缓冲单元;所述处理器用于根据所述环形缓冲单元收到的数据,生成对应的地址写请求,其中,所述地址写请求包括对应的数据的去向地址,所述第一缓冲单元收到的数据所对应的去向地址位于所述目的存储单元,所述第二缓冲单元收到的数据所对应的去向地址位于所述源存储单元;所述处理器用于利用所述地址写请求,将对应的所述数据向对应的存储单元的所述去向地址发送。
在一个可能的设计中,还包括目的写地址逻辑生成电路,所述目的写地址逻辑生成电路与所述第一缓冲单元连接;所述目的写地址逻辑生成电路用于根据所述第一缓冲单元收到的源数据,生成对应的目的地址写请求,其中,目的地址写请求包括对应的源数据的去向地址;所述第一缓冲单元用于利用所述目的地址写请求,将对应的所述源数据向所述目的存储单元的所述去向地址发送。
在一个可能的设计中,还包括源写地址逻辑生成电路,所述源写地址逻辑生成电路与所述第二缓冲单元连接;所述源写地址逻辑生成电路用于根据所述第二缓冲单元收到的目的数据,生成对应的源地址写请求,其中,源地址写请求包括对应的目的数据的去向地址;所述第二缓冲单元用于利用所述源地址写请求,将对应的所述目的数据向所述源存储单元的所述去向地址发送。
在一个可能的设计中,所述源存储单元向所述第一缓冲单元发送源数据的通信接口与所述目的存储单元向所述第二缓冲单元发送目的数据的通信接口相同;所述源存储单元为全局数据共享GDS存储器,所述目的存储单元为GDS存储器;或所述源存储单元为高速缓存存储器、设备内存中的任一个,所述目的存储单元为所述高速缓存存储器、所述设备内存中的任一个。
在一个可能的设计中,所述源存储单元向所述第一缓冲单元发送源数据的通信接口与所述目的存储单元向所述第二缓冲单元发送目的数据的通信接口不相同;所述源存储单元为所述GDS存储器,所述目的存储单元为所述高速缓存存储器、所述设备内存中的任一个;或所述源存储单元为高速缓存存储器、设备内存中的任一个,所述目的存储单元为所述GDS存储器。
在一个可能的设计中,所述数据交换方法在有序模式下进行,所述数据交换方法在有序模式下进行;所述源读地址逻辑生成电路用于确定所述至少一个源地址读请求均向所述源存储单元发送;所述目的读地址逻辑生成电路用于确定所述至少一个目的地址读请求均向所述目的存储单元发送。
在一个可能的设计中,所述数据交换方法在无序模式下进行;所述第一缓冲单元用于确定所述源数据均传输至所述第一缓冲单元;所述第二缓冲单元用于确定所述目的数据均传输至所述第二缓冲单元。
第四方面,本申请实施例提供了一种计算机系统,包括上述第三方面或第三方面的任一可选的实现方式的处理器。
第五方面,本申请提供一种可执行程序产品,所述可执行程序产品在计算机上运行时,使得计算机执行第一方面或第一方面的任意可能的实现方式中的方法。
为使本申请实施例所要实现的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为现有技术中GPU的硬件流程图;
图2为本申请实施例对应的GPU的硬件流程图;
图3为本申请实施例提供的数据交换方法的流程示意图;
图4为本申请实施例提供的数据交换方法的部分步骤的一种具体实施方式的流程示意图;
图5为本申请实施例提供的数据交换方法的部分步骤的另一种具体实施方式的流程示意图;
图6为本申请实施例提供的数据交换装置的示意性结构框图;
图7为本申请实施例的计算机系统的结构示意图。
具体实施方式
在介绍本申请实施例之前,先对现有的技术方案进行简要说明:
请参见图1,图1示出了现有的GPU进行直接内存存取(Direct Memory Access,简称DMA)操作的硬件流程图,现有的GPU包括环形缓冲单元102、源读地址逻辑生成电路104、目的写地址逻辑生成电路106、GDS接口108、高速缓存接口110、全局数据共享(Global DataShare,简称GDS)存储器112、高速缓存(Cache)存储器116、设备内存120(Device memory)、设备内存控制器118。源读地址逻辑生成电路104分别与GDS接口108以及高速缓存接口110连接,目的写地址逻辑生成电路106分别与GDS接口108以及高速缓存接口110连接。GDS存储器112通过GDS接口108与环形缓冲单元102连接,高速缓存存储器116通过多个高速缓存路由114与高速缓存接口110连接,高速缓存接口110也与环形缓冲单元102连接。高速缓存存储器116还通过设备内存控制器118与设备内存120连接。
环形缓冲单元102(ring buffer)为用于缓存数据的缓存单元,环形缓冲单元102可以由静态随机存取存储器(Static Random-Access Memory,简称SRAM)实现。
GPU可以利用源读地址逻辑生成电路104生成源地址读请求,源地址读请求可以从源存储单元读取数据,从源存储单元获取到的数据被写入环形缓冲单元102。环形缓冲单元102中具有与源地址读请求对应的指针,该指针指向环形缓冲单元102中待被写入数据的空白存储空间,当空白存储空间被写入数据后,更新该指针指向的位置,使该指针指向新的待被写入数据的空白存储空间。源存储单元可以为GDS存储器112、高速缓存存储器116、设备内存120中的任意一个。
GPU可以利用目的写地址逻辑生成电路106生成目的地址写请求,该目的地址写请求可以从环形缓冲单元102读取数据,从环形缓冲单元102读取到的数据被写入目的存储单元。环形缓冲单元102中还具有与目的地址写请求对应的指针,该指针指向待被从环形缓冲单元102读取的数据对应的存储空间,当相应的数据被读取后,更新该指针指向的位置,使该指针指向新的待被从环形缓冲单元102读取的数据对应的存储空间。其中,若目的地址写请求对应的指针指向的位置和源地址读请求对应的指针指向的位置相同,表示环形缓冲单元102为空。目的存储单元也可以为GDS存储器112、高速缓存存储器116、设备内存120中的任意一个。
上述的硬件流程只能实现数据的传输,若要实现数据交换,需要引入新的内核,会造成功耗变高。
在本申请实施例中,通过扩展命令处理器(Command processor)中的DMA引擎实现数据交换,在DMA_DATA命令包中增加交换模式(swap mode),从而使用DMA_DATA_SWAP实现数据交换。
具体地,可以在DMA_DATA命令包的DW0中加入新字段[31:31]:
SWAP_MODE.
0=DMA_MODE:DMA-Copy data from source to destination.
1=SWAP_MODE:swap data between source and destination.
上述新字段定义了DMA SWAP操作的SWAP模式的位,SWAP模式的位设置为0,表示按照DMA方式将数据从源位置复制到目的位置;SWAP模式的位设置为1,表示交换源位置与目的位置各自对应的数据。
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
请参见图3,图3示出了本申请实施例提供的数据交换方法,该方法可以由图2示出的GPU执行,GPU包括环形缓冲单元102、源读地址逻辑生成电路104、源写地址逻辑生成电路105、目的写地址逻辑生成电路106、目的读地址逻辑生成电路107、GDS接口108、高速缓存接口110、GDS存储器112、多个高速缓存路由114、高速缓存存储器116、设备内存控制器118以及设备内存120。
环形缓冲单元102包括第一缓冲单元1021和第二缓冲单元1022,第一缓冲单元1021分别与GDS接口108和高速缓存接口110连接,第二缓冲单元1022分别与GDS接口108和高速缓存接口110连接。源读地址逻辑生成电路104分别与GDS接口108和高速缓存接口110连接,源写地址逻辑生成电路105与第二缓冲单元1022连接,目的写地址逻辑生成电路106与第一缓冲单元1021连接,目的读地址逻辑生成电路107分别与GDS接口108和高速缓存接口110连接。GDS接口108还与GDS存储器112连接,高速缓存接口110还通过多个高速缓存路由114与高速缓存存储器116连接。高速缓存存储器116还与设备内存控制器118连接,设备内存控制器118还与设备内存120连接。
可选地,不妨设环形缓冲单元102的存储空间为64*512bit,第一缓冲单元1021与第二缓冲单元1022的存储空间可以相等,且均等于环形缓冲单元102的一半(例如,第一缓冲单元1021与第二缓冲单元1022的存储空间可以均为32*512bit),从而可以较大程度地利用环形缓冲单元102。应当理解,第一缓冲单元1021的存储空间可以与第二缓冲单元1022相等,也可以不相等,第一缓冲单元1021与第二缓冲单元1022的存储空间的具体数值不应该理解为是对本申请的限制。
GPU用于通过环形缓冲单元102的第一缓冲单元1021和第二缓冲单元1022交换源存储单元与目的存储单元的数据。该方法具体包括如下步骤S110至步骤S150:
步骤S110,生成至少一个源地址读请求,并向所述源存储单元发送所述至少一个源地址读请求,以便所述源存储单元将每个源地址读请求对应的源数据返回给所述第一缓冲单元1021。
至少一个源地址读请求中的每个源地址读请求均包括对应的源地址,每个源地址均存储有对应的源数据,每个源地址均位于源存储单元。
源地址读请求可以由GPU通过源读地址逻辑生成电路104生成。GPU可以利用源读地址逻辑生成电路104把生成的每个源地址读请求发送给源存储单元。对于每个源地址读请求,源存储单元根据源地址查找到对应的源数据,并把源数据返回给第一缓冲单元1021。
步骤S120,生成至少一个目的地址读请求,并向所述目的存储单元发送所述至少一个目的地址读请求,以便所述目的存储单元将每个目的地址读请求对应的目的数据返回给所述第二缓冲单元1022。
至少一个目的地址读请求中的每个目的地址读请求均包括对应的目的地址,每个目的地址均存储有对应的目的数据,每个目的地址均位于目的存储单元。
目的地址读请求可以有GPU通过目的读地址逻辑生成电路107生成。GPU可以利用目的读地址逻辑生成电路107把生成的每个目的地址读请求发送给目的存储单元。对于每个目的地址读请求,目的存储单元根据目的地址查找到对应的目的数据,并把目的数据返回给第二缓存单元。
步骤S130,确定所述源数据能传输到所述第一缓冲单元1021,且所述目的数据能传输到所述第二缓冲单元1022。
GPU确定全部源数据均能够传输到第一缓冲单元1021,GPU确定全部目的数据均能够传输到第二缓冲单元1022。确定全部源数据均能够传输到第一缓冲单元1021是为了避免在源数据尚未完全传输到第一缓冲单元1021的情况下目的数据就被发送到了源存储单元,导致尚未被传输的源数据被目的数据覆盖。同样的,确定全部目的数据均能够传输到第二缓冲单元1022是为了避免在目的数据尚未完全传输到第二缓冲单元1022的情况下源数据就被发送到了目的存储单元,导致尚未被传输的目的数据被源数据覆盖。
在不同的运行模式下,确定源数据能传输到第一缓冲单元1021、目的数据能传输到第二缓冲单元1022的条件不同。
可选地,数据交换方法可以在有序模式(in-order mode)下进行,则步骤S130可以为:确定所述至少一个源地址读请求均向所述源存储单元发送,且所述至少一个目的地址读请求均向所述目的存储单元发送。
数据交换方法在有序模式下进行,由于读请求先发送,写请求后发送,读请求所请求的数据在写请求发送前,均已经在返回环形缓冲单元102的途中。因此,所述源读地址逻辑生成电路104用于确定至少一个源地址读请求均向所述源存储单元发送,即可确定上述的每个源地址读请求对应的源数据能够被传输回第一缓冲单元1021;目的读地址逻辑生成电路107用于确定至少一个目的地址读请求均向目的存储单元发送,即可确定上述的每个目的地址读请求对应的目的数据能够被传输回第二缓冲单元1022,从而避免数据尚未传输到缓冲单元时就被对端的发送过来的数据覆盖掉。
可选地,数据交换方法可以在无序模式(out-of-order mode)下进行,则步骤S130可以为:确定所述源数据均传输至所述第一缓冲单元1021,且所述目的数据均传输至所述第二缓冲单元1022。
数据交换方法在无序模式下进行,读请求与写请求没有顺序的限制,故在源数据均传输至第一缓冲单元1021,且目的数据均传输至第二缓冲单元1022后,才能够确定源数据能传输到所述第一缓冲单元1021,且所述目的数据能传输到所述第二缓冲单元1022;从而避免数据尚未传输到缓冲单元时就被对端的发送过来的数据覆盖掉。
步骤S140,根据所述环形缓冲单元102收到的数据,生成对应的地址写请求。
步骤S150,利用所述地址写请求,将对应的所述数据向对应的存储单元的所述去向地址发送。
其中,所述地址写请求包括对应的数据的去向地址,所述第一缓冲单元1021收到的数据所对应的去向地址位于所述目的存储单元,所述第二缓冲单元1022收到的数据所对应的去向地址位于所述源存储单元。
在确定源数据均能够被传输到第一缓冲单元1021,且目的数据均能够被传输到第二缓冲单元1022之后。对第一缓冲单元1021收到的源数据生成对应的地址写请求,从而将第一缓冲单元1021收到的源数据发送到目的存储单元;对第二缓冲单元1022收到的目的数据也生成对应的地址写请求,从而将第二缓冲单元1022收到的目的数据发送到源存储单元。本申请利用环形缓冲单元102便实现了源存储单元与目的存储单元的数据交换,与现有技术相比,减小了功耗,节约了成本。
可选地,在一种具体实施方式中,请参见图4,步骤S140至步骤S150分别对应于如下步骤S141至步骤S151:
步骤S141,根据所述第一缓冲单元1021收到的源数据,生成对应的目的地址写请求。
目的地址写请求包括对应的源数据的去向地址,该去向地址位于目的存储单元。可选地,每当第一缓冲单元1021收到一次源数据,目的写地址逻辑生成电路106便可以生成对应的目的地址写请求,从而可以将第一缓冲单元1021中的源数据及时的传输给目的存储单元。
步骤S151,利用所述目的地址写请求,将对应的所述源数据向所述目的存储单元的所述去向地址发送。
GPU执行目的地址写请求,通过第一缓冲单元1021将源数据向目的存储单元的去向地址发送,以将该源数据写入目的存储单元。
对于第一缓冲单元1021收到的源数据,GPU可以生成目的地址写请求,目的地址写请求包括该源数据的去向地址,该去向地址位于目的存储单元,从而实现将第一缓冲单元1021收到的源数据写入目的存储单元。第一缓冲单元1021收到的源数据来自于源存储单元,由此,利用第一缓冲单元1021实现了数据从源存储单元向目的存储单元的转移过程。
可选地,在一种具体实施方式中,请参见图5,步骤S140至步骤S150分别对应于如下步骤S241至步骤S251:
步骤S241,根据所述第二缓冲单元1022收到的目的数据,生成对应的源地址写请求。
源地址写请求包括对应的目的数据的去向地址,该去向地址位于源存储单元。可选地,每当第二缓冲单元1022收到一次目的数据,源写地址逻辑生成电路105便会生成对应的源地址写请求,从而可以将第二缓冲单元1022中的目的数据及时的传输给源存储单元。
步骤S251,利用所述源地址写请求,将对应的所述目的数据向所述源存储单元的所述去向地址发送。
GPU执行源地址写请求,通过第二缓冲单元1022将目的数据向源存储单元的去向地址发送,以将该目的数据写入源存储单元。
对于第二缓冲单元1022收到的目的数据,GPU可以生成源地址写请求,源地址写请求包括该目的数据的去向地址,该去向地址位于源存储单元,从而实现将第二缓冲单元1022收到的目的数据写入源存储单元。第二缓冲单元1022收到的目的数据来自于目的存储单元,由此,利用第二缓冲单元1022实现了数据从目的存储单元向源存储单元的转移过程。
在一种具体实施方式中,源存储单元向所述第一缓冲单元1021发送源数据的通信接口与所述目的存储单元向所述第二缓冲单元1022发送目的数据的通信接口相同,则步骤S120可以在步骤S110之后执行。
不妨设源存储单元向第一缓冲单元1021发送源数据的通信接口以及目的存储单元向第二缓冲单元1022发送目的数据的通信接口均为图2示出的高速缓存接口110。
可选地,源存储单元和目的存储单元可以为均与高速缓存接口110连接的不同存储单元,例如,源存储单元可以为高速缓存存储器116,目的存储单元可以为设备内存120;可以理解,源存储单元与目的存储单元也可以互换,即源存储单元可以为设备内存120,目的存储单元可以为高速缓存存储器116。本申请实施例提供的数据交换方法的目标在于实现两处数据的交换,因此,对于欲交换的两处数据分别所在的载体,可以随机将其中一个载体作为源存储单元,另一个载体自然成为目的存储单元。
可选地,源存储单元和目的存储单元也可以为同一存储单元,即数据交换可以是实现同一存储单元的不同位置的数据的交换,例如源存储单元和目的存储单元均可以为高速缓存存储器116。
向目的存储单元发送目的地址读请求的目的在于使目的存储单元返回目的数据,同理,向源存储单元发送源地址读请求的目的在于使源存储单元返回源数据。在源存储单元传输数据的通信接口与目的存储单元传输数据的通信接口相同的情况下,若目的存储单元返回目的数据与源存储单元返回源数据并行进行,则会交织占用同一通信接口,从而导致传输效率变低,因此,目的存储单元返回目的数据与源存储单元返回源数据不在同一时间段进行,利于提高传输效率。
为了便于描述,不妨以源存储单元是设备内存120,目的存储单元是高速缓存存储器116为例,对通信接口相同(均为高速缓存接口110)的情况进行说明:
源读地址逻辑生成电路104生成多个源地址读请求,GPU将多个源地址读请求均发送给源存储单元:设备内存120。设备内存120对于每个源地址读请求,均可以获取到对应的源数据,并将源数据经高速缓存接口110发送给第一缓冲单元1021。
对于有序模式,GPU将多个源地址读请求均发送给设备内存120后,便可以确定源数据能够传输到第一缓存单元;对于无序模式,则需要在第一缓存单元接收到多个源地址读请求分别对应的源数据,才可以确定源数据能够传输到第一缓存单元。
目的读地址逻辑生成电路107生成多个目的地址读请求,GPU将多个目的地址读请求均发送给目的存储单元:高速缓存存储器116。高速缓存存储器116对于每个目的地址读请求,均可以获取到对应的目的数据,并将目的数据经高速缓存接口110发送给第二缓冲单元1022。
对于有序模式,GPU将多个目的地址读请求均发送给高速缓存存储器116后,便可以确定目的数据能够传输到第二缓存单元;对于无序模式,则需要在第二缓存单元接收到多个目的地址读请求分别对应的目的数据,才可以确定目的数据能够传输到第二缓存单元。
在确定目的数据能够传输到第二缓存单元后,每当一个源数据被写入第一缓存单元,GPU便可以利用目的写地址逻辑生成电路106生成对应的目的地址写请求,该目的地址写请求中包括位于目的存储单元:高速缓存存储器116的去向地址,从而将来自于源存储单元:设备内存120的源数据经第一缓存单元缓存,传输至目的存储单元:高速缓存存储器116。
在确定源数据能够传输到第一缓存单元后,每当一个目的数据被写入第二缓存单元,GPU便可以利用源写地址逻辑生成电路105生成对应的源地址写请求,该源地址写请求中包括位于源存储单元:设备内存120的去向地址,从而将来自于目的存储单元:高速缓存存储器116的源数据经第二缓存单元缓存,传输至源存储单元:设备内存120。
在另一种具体实施方式中,所述源存储单元向所述第一缓冲单元1021发送源数据的通信接口与所述目的存储单元向所述第二缓冲单元1022发送目的数据的通信接口不相同,则步骤S120可以与步骤S110并行执行。
不妨设源存储单元向第一缓冲单元1021发送源数据的通信接口为图2示出的GDS接口108,目的存储单元向第二缓冲单元1022发送目的数据的通信接口为高速缓存接口110。
在源存储单元传输数据的通信接口与目的存储单元传输数据的通信接口不相同的情况下,目的存储单元返回目的数据与源存储单元返回源数据并行进行互不干扰,都能维持较高的传输速率,从而提高了数据传输的效率。
为了便于描述,不妨以源存储单元是GDS存储器112,目的存储单元是高速缓存存储器116为例,对通信接口不同的情况进行说明:
源读地址逻辑生成电路104生成多个源地址读请求,GPU将多个源地址读请求均发送给源存储单元:GDS存储器112。GDS存储器112对于每个源地址读请求,均可以获取到对应的源数据,并将源数据经GDS接口108发送给第一缓冲单元1021。
与此同时,目的读地址逻辑生成电路107生成多个目的地址读请求,GPU将多个目的地址读请求均发送给目的存储单元:高速缓存存储器116。高速缓存存储器116对于每个目的地址读请求,均可以获取到对应的目的数据,并将目的数据经高速缓存接口110发送给第二缓冲单元1022。
在确定目的数据能够传输到第二缓存单元,且确定源数据能够传输到第一缓存单元后,每当一个源数据被写入第一缓存单元,GPU便可以利用目的写地址逻辑生成电路106生成对应的目的地址写请求,该目的地址写请求中包括位于目的存储单元:高速缓存存储器116的去向地址,从而将来自于源存储单元:GDS存储器112的源数据经第一缓存单元缓存,传输至目的存储单元:高速缓存存储器116。
与此同时,每当一个目的数据被写入第二缓存单元,GPU便可以利用源写地址逻辑生成电路105生成对应的源地址写请求,该源地址写请求中包括位于源存储单元:GDS存储器112的去向地址,从而将来自于目的存储单元:高速缓存存储器116的源数据经第二缓存单元缓存,传输至源存储单元:GDS存储器112。
请参见图6,图6示出了本申请实施例提供的数据交换装置,所述装置300包括:
源读请求生成模块310,用于生成至少一个源地址读请求,并向所述源存储单元发送所述至少一个源地址读请求,以便所述源存储单元将每个源地址读请求对应的源数据返回给所述第一缓冲单元。
目的读请求生成模块320,用于生成至少一个目的地址读请求,并向所述目的存储单元发送所述至少一个目的地址读请求,以便所述目的存储单元将每个目的地址读请求对应的目的数据返回给所述第二缓冲单元。
数据传输确定模块330,用于确定所述源数据能传输到所述第一缓冲单元,且所述目的数据能传输到所述第二缓冲单元;
写请求生成模块340,用于根据所述环形缓冲单元收到的数据,生成对应的地址写请求,其中,所述地址写请求包括对应的数据的去向地址,所述第一缓冲单元收到的数据所对应的去向地址位于所述目的存储单元,所述第二缓冲单元收到的数据所对应的去向地址位于所述源存储单元;
数据发送模块350,用于利用所述地址写请求,将对应的所述数据向对应的存储单元的所述去向地址发送。
可选地,在一种具体实施方式中,写请求生成模块340,具体用于根据所述第一缓冲单元收到的源数据,生成对应的目的地址写请求,其中,目的地址写请求包括对应的源数据的去向地址。
数据发送模块350,具体用于利用所述目的地址写请求,将对应的所述源数据向所述目的存储单元的所述去向地址发送。
可选地,在一种具体实施方式中,写请求生成模块340,具体用于根据所述第二缓冲单元收到的目的数据,生成对应的源地址写请求,其中,源地址写请求包括对应的目的数据的去向地址。
数据发送模块350,具体用于利用所述源地址写请求,将对应的所述目的数据向所述源存储单元的所述去向地址发送。
可选地,在一种具体实施方式中,数据交换方法在有序模式下进行,数据传输确定模块330,具体用于确定所述至少一个源地址读请求均向所述源存储单元发送,且所述至少一个目的地址读请求均向所述目的存储单元发送。
可选地,在一种具体实施方式中,所述数据交换方法在无序模式下进行,数据传输确定模块330,具体用于确定所述源数据均传输至所述第一缓冲单元,且所述目的数据均传输至所述第二缓冲单元。
图6示出的数据交换装置与图3示出的数据交换方法相对应,在此便不做赘述。
本申请实施例提供一种处理器,处理器的硬件流程图如图2所示,处理器包括环形缓冲单元、源存储单元、目的存储单元、源读地址逻辑生成电路以及目的读地址逻辑生成电路,所述源读地址逻辑生成电路与所述源存储单元连接,所述目的读地址逻辑生成电路与所述目的存储单元连接,所述环形缓冲单元包括第一缓冲单元和第二缓冲单元,所述源存储单元通过对应的通信接口与所述第一缓冲单元和第二缓冲单元连接,所述目的存储单元通过对应的通信接口与所述第一缓冲单元和所述第二缓冲单元连接,所述处理器用于通过所述第一缓冲单元和第二缓冲单元交换源存储单元与目的存储单元的数据;所述源读地址逻辑生成电路用于生成至少一个源地址读请求,并向所述源存储单元发送所述至少一个源地址读请求,以便所述源存储单元将每个源地址读请求对应的源数据返回给所述第一缓冲单元;所述目的读地址逻辑生成电路用于生成至少一个目的地址读请求,并向所述目的存储单元发送所述至少一个目的地址读请求,以便所述目的存储单元将每个目的地址读请求对应的目的数据返回给所述第二缓冲单元;所述处理器用于确定所述源数据能传输到所述第一缓冲单元,且所述目的数据能传输到所述第二缓冲单元;所述处理器用于根据所述环形缓冲单元收到的数据,生成对应的地址写请求,其中,所述地址写请求包括对应的数据的去向地址,所述第一缓冲单元收到的数据所对应的去向地址位于所述目的存储单元,所述第二缓冲单元收到的数据所对应的去向地址位于所述源存储单元;所述处理器用于利用所述地址写请求,将对应的所述数据向对应的存储单元的所述去向地址发送。
可选地,还包括目的写地址逻辑生成电路,所述目的写地址逻辑生成电路与所述第一缓冲单元连接;所述目的写地址逻辑生成电路用于根据所述第一缓冲单元收到的源数据,生成对应的目的地址写请求,其中,目的地址写请求包括对应的源数据的去向地址;所述第一缓冲单元用于利用所述目的地址写请求,将对应的所述源数据向所述目的存储单元的所述去向地址发送。
可选地,还包括源写地址逻辑生成电路,所述源写地址逻辑生成电路与所述第二缓冲单元连接;所述源写地址逻辑生成电路用于根据所述第二缓冲单元收到的目的数据,生成对应的源地址写请求,其中,源地址写请求包括对应的目的数据的去向地址;所述第二缓冲单元用于利用所述源地址写请求,将对应的所述目的数据向所述源存储单元的所述去向地址发送。
可选地,所述源存储单元向所述第一缓冲单元发送源数据的通信接口与所述目的存储单元向所述第二缓冲单元发送目的数据的通信接口相同;所述源存储单元为全局数据共享GDS存储器,所述目的存储单元为GDS存储器;或所述源存储单元为高速缓存存储器、设备内存中的任一个,所述目的存储单元为所述高速缓存存储器、所述设备内存中的任一个。
可选地,所述源存储单元向所述第一缓冲单元发送源数据的通信接口与所述目的存储单元向所述第二缓冲单元发送目的数据的通信接口不相同;所述源存储单元为所述GDS存储器,所述目的存储单元为所述高速缓存存储器、所述设备内存中的任一个;或所述源存储单元为高速缓存存储器、设备内存中的任一个,所述目的存储单元为所述GDS存储器。
可选地,所述数据交换方法在有序模式下进行,所述数据交换方法在有序模式下进行;所述源读地址逻辑生成电路用于确定所述至少一个源地址读请求均向所述源存储单元发送;所述目的读地址逻辑生成电路用于确定所述至少一个目的地址读请求均向所述目的存储单元发送。
可选地,所述数据交换方法在无序模式下进行;所述第一缓冲单元用于确定所述源数据均传输至所述第一缓冲单元;所述第二缓冲单元用于确定所述目的数据均传输至所述第二缓冲单元。
应当说明的是,处理器所执行的动作与上述各实施例一致,此处不再赘述。
图7为本申请实施例的计算机系统的结构示意图,计算机系统可以由硬件子系统和软件子系统组成。如图7所示,该计算机系统包括处理器601、存储器(memory)602和总线603;其中,所述处理器601、存储器602均通过所述总线603完成相互间的通信;所述处理器601用于调用所述存储器602中的程序指令,进行图像和图形相关运算工作。其中,处理器601进行数据交换的方法与上述实施例一致,此处不再赘述。
可选地,处理器601可以为图形处理器,也可以是中央处理器(CentralProcessing Unit,CPU)、加速处理器(Accelerated Processing Unit)等,也还可以是其他类型的处理器,如网络处理器(Network Processor,NP)、应用处理器,当然在某些产品中,应用处理器就是CPU,本申请实施例提供的处理器601可以应用于图形处理应用场景,也可以用于深度计算等运算场景。
在本申请所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
另外,作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
再者,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。
以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (16)

1.一种数据交换方法,其特征在于,用于通过环形缓冲单元交换源存储单元与目的存储单元的数据,所述环形缓冲单元包括第一缓冲单元和第二缓冲单元,所述方法包括:
生成至少一个源地址读请求,并向所述源存储单元发送所述至少一个源地址读请求,以便所述源存储单元将每个源地址读请求对应的源数据返回给所述第一缓冲单元;
生成至少一个目的地址读请求,并向所述目的存储单元发送所述至少一个目的地址读请求,以便所述目的存储单元将每个目的地址读请求对应的目的数据返回给所述第二缓冲单元;
确定所述源数据能传输到所述第一缓冲单元,且所述目的数据能传输到所述第二缓冲单元;所述确定所述源数据能传输到所述第一缓冲单元,且所述目的数据能传输到所述第二缓冲单元,包括:在有序模式下进行时,确定所述至少一个源地址读请求均向所述源存储单元发送,且所述至少一个目的地址读请求均向所述目的存储单元发送;或者,在无序模式下进行时,确定所述源数据均传输至所述第一缓冲单元,且所述目的数据均传输至所述第二缓冲单元;
根据所述环形缓冲单元收到的数据,生成对应的地址写请求,其中,所述地址写请求包括对应的数据的去向地址,所述第一缓冲单元收到的数据所对应的去向地址位于所述目的存储单元,所述第二缓冲单元收到的数据所对应的去向地址位于所述源存储单元;
利用所述地址写请求,将对应的所述数据向对应的存储单元的所述去向地址发送。
2.根据权利要求1所述的方法,其特征在于,至少一个所述源数据返回至所述第一缓冲单元,所述根据所述环形缓冲单元收到的数据,生成对应的地址写请求,包括:
根据所述第一缓冲单元收到的源数据,生成对应的目的地址写请求,其中,目的地址写请求包括对应的源数据的去向地址;
所述利用所述地址写请求,将对应的所述数据向对应的存储单元的所述去向地址发送,包括:
利用所述目的地址写请求,将对应的所述源数据向所述目的存储单元的所述去向地址发送。
3.根据权利要求1所述的方法,其特征在于,至少一个所述目的数据返回至所述第二缓冲单元,所述根据所述环形缓冲单元收到的数据,生成对应的地址写请求,包括:
根据所述第二缓冲单元收到的目的数据,生成对应的源地址写请求,其中,源地址写请求包括对应的目的数据的去向地址;
所述利用所述地址写请求,将对应的所述数据向对应的存储单元的所述去向地址发送,包括:
利用所述源地址写请求,将对应的所述目的数据向所述源存储单元的所述去向地址发送。
4.根据权利要求1所述的方法,其特征在于,所述源存储单元向所述第一缓冲单元发送源数据的通信接口与所述目的存储单元向所述第二缓冲单元发送目的数据的通信接口相同;
步骤:生成至少一个目的地址读请求,并向所述目的存储单元发送所述至少一个目的地址读请求在步骤:生成至少一个源地址读请求,并向所述源存储单元发送所述至少一个源地址读请求之后执行。
5.根据权利要求1所述的方法,其特征在于,所述源存储单元向所述第一缓冲单元发送源数据的通信接口与所述目的存储单元向所述第二缓冲单元发送目的数据的通信接口不相同;
步骤:生成至少一个目的地址读请求,并向所述目的存储单元发送所述至少一个目的地址读请求与步骤:生成至少一个源地址读请求,并向所述源存储单元发送所述至少一个源地址读请求并行执行。
6.根据权利要求1所述的方法,其特征在于,所述数据交换方法在有序模式下进行,所述确定所述源数据能传输到所述第一缓冲单元,且所述目的数据能传输到所述第二缓冲单元,包括:
确定所述至少一个源地址读请求均向所述源存储单元发送,且所述至少一个目的地址读请求均向所述目的存储单元发送。
7.根据权利要求1所述的方法,其特征在于,所述数据交换方法在无序模式下进行,所述确定所述源数据能传输到所述第一缓冲单元,且所述目的数据能传输到所述第二缓冲单元,包括:
确定所述源数据均传输至所述第一缓冲单元,且所述目的数据均传输至所述第二缓冲单元。
8.一种数据交换装置,其特征在于,用于通过环形缓冲单元交换源存储单元与目的存储单元的数据,所述环形缓冲单元包括第一缓冲单元和第二缓冲单元,所述装置包括:
源读请求生成模块,用于生成至少一个源地址读请求,并向所述源存储单元发送所述至少一个源地址读请求,以便所述源存储单元将每个源地址读请求对应的源数据返回给所述第一缓冲单元;
目的读请求生成模块,用于生成至少一个目的地址读请求,并向所述目的存储单元发送所述至少一个目的地址读请求,以便所述目的存储单元将每个目的地址读请求对应的目的数据返回给所述第二缓冲单元;
数据传输确定模块,用于确定所述源数据能传输到所述第一缓冲单元,且所述目的数据能传输到所述第二缓冲单元;所述确定所述源数据能传输到所述第一缓冲单元,且所述目的数据能传输到所述第二缓冲单元,包括:在有序模式下进行时,确定所述至少一个源地址读请求均向所述源存储单元发送,且所述至少一个目的地址读请求均向所述目的存储单元发送;或者,在无序模式下进行时,确定所述源数据均传输至所述第一缓冲单元,且所述目的数据均传输至所述第二缓冲单元;
写请求生成模块,用于根据所述环形缓冲单元收到的数据,生成对应的地址写请求,其中,所述地址写请求包括对应的数据的去向地址,所述第一缓冲单元收到的数据所对应的去向地址位于所述目的存储单元,所述第二缓冲单元收到的数据所对应的去向地址位于所述源存储单元;
数据发送模块,用于利用所述地址写请求,将对应的所述数据向对应的存储单元的所述去向地址发送。
9.一种处理器,其特征在于,包括环形缓冲单元、源存储单元、目的存储单元、源读地址逻辑生成电路以及目的读地址逻辑生成电路,所述源读地址逻辑生成电路与所述源存储单元连接,所述目的读地址逻辑生成电路与所述目的存储单元连接,所述环形缓冲单元包括第一缓冲单元和第二缓冲单元,所述源存储单元通过对应的通信接口与所述第一缓冲单元和第二缓冲单元连接,所述目的存储单元通过对应的通信接口与所述第一缓冲单元和所述第二缓冲单元连接,所述处理器用于通过所述第一缓冲单元和第二缓冲单元交换源存储单元与目的存储单元的数据;
所述源读地址逻辑生成电路用于生成至少一个源地址读请求,并向所述源存储单元发送所述至少一个源地址读请求,以便所述源存储单元将每个源地址读请求对应的源数据返回给所述第一缓冲单元;
所述目的读地址逻辑生成电路用于生成至少一个目的地址读请求,并向所述目的存储单元发送所述至少一个目的地址读请求,以便所述目的存储单元将每个目的地址读请求对应的目的数据返回给所述第二缓冲单元;
所述处理器用于确定所述源数据能传输到所述第一缓冲单元,且所述目的数据能传输到所述第二缓冲单元;所述确定所述源数据能传输到所述第一缓冲单元,且所述目的数据能传输到所述第二缓冲单元,包括:在有序模式下进行时,确定所述至少一个源地址读请求均向所述源存储单元发送,且所述至少一个目的地址读请求均向所述目的存储单元发送;或者,在无序模式下进行时,确定所述源数据均传输至所述第一缓冲单元,且所述目的数据均传输至所述第二缓冲单元;
所述处理器用于根据所述环形缓冲单元收到的数据,生成对应的地址写请求,其中,所述地址写请求包括对应的数据的去向地址,所述第一缓冲单元收到的数据所对应的去向地址位于所述目的存储单元,所述第二缓冲单元收到的数据所对应的去向地址位于所述源存储单元;
所述处理器用于利用所述地址写请求,将对应的所述数据向对应的存储单元的所述去向地址发送。
10.根据权利要求9所述的处理器,其特征在于,还包括目的写地址逻辑生成电路,所述目的写地址逻辑生成电路与所述第一缓冲单元连接;
所述目的写地址逻辑生成电路用于根据所述第一缓冲单元收到的源数据,生成对应的目的地址写请求,其中,目的地址写请求包括对应的源数据的去向地址;
所述第一缓冲单元用于利用所述目的地址写请求,将对应的所述源数据向所述目的存储单元的所述去向地址发送。
11.根据权利要求9所述的处理器,其特征在于,还包括源写地址逻辑生成电路,所述源写地址逻辑生成电路与所述第二缓冲单元连接;
所述源写地址逻辑生成电路用于根据所述第二缓冲单元收到的目的数据,生成对应的源地址写请求,其中,源地址写请求包括对应的目的数据的去向地址;
所述第二缓冲单元用于利用所述源地址写请求,将对应的所述目的数据向所述源存储单元的所述去向地址发送。
12.根据权利要求9所述的处理器,其特征在于,所述源存储单元向所述第一缓冲单元发送源数据的通信接口与所述目的存储单元向所述第二缓冲单元发送目的数据的通信接口相同;
所述源存储单元为全局数据共享GDS存储器,所述目的存储单元为GDS存储器;或
所述源存储单元为高速缓存存储器、设备内存中的任一个,所述目的存储单元为所述高速缓存存储器、所述设备内存中的任一个。
13.根据权利要求9所述的处理器,其特征在于,所述源存储单元向所述第一缓冲单元发送源数据的通信接口与所述目的存储单元向所述第二缓冲单元发送目的数据的通信接口不相同;
所述源存储单元为GDS存储器,所述目的存储单元为高速缓存存储器、设备内存中的任一个;或
所述源存储单元为高速缓存存储器、设备内存中的任一个,所述目的存储单元为所述GDS存储器。
14.根据权利要求9所述的处理器,其特征在于,
所述源读地址逻辑生成电路用于确定所述至少一个源地址读请求均向所述源存储单元发送;
所述目的读地址逻辑生成电路用于确定所述至少一个目的地址读请求均向所述目的存储单元发送。
15.根据权利要求9所述的处理器,其特征在于,
所述第一缓冲单元用于确定所述源数据均传输至所述第一缓冲单元;
所述第二缓冲单元用于确定所述目的数据均传输至所述第二缓冲单元。
16.一种计算机系统,其特征在于,包括权利要求9-15任一项所述的处理器。
CN201911317544.XA 2019-12-18 2019-12-18 数据交换方法、装置、处理器及计算机系统 Active CN111124953B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201911317544.XA CN111124953B (zh) 2019-12-18 2019-12-18 数据交换方法、装置、处理器及计算机系统
PCT/CN2020/114006 WO2021120714A1 (zh) 2019-12-18 2020-09-08 数据交换方法、装置、处理器及计算机系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911317544.XA CN111124953B (zh) 2019-12-18 2019-12-18 数据交换方法、装置、处理器及计算机系统

Publications (2)

Publication Number Publication Date
CN111124953A CN111124953A (zh) 2020-05-08
CN111124953B true CN111124953B (zh) 2021-04-27

Family

ID=70500930

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911317544.XA Active CN111124953B (zh) 2019-12-18 2019-12-18 数据交换方法、装置、处理器及计算机系统

Country Status (2)

Country Link
CN (1) CN111124953B (zh)
WO (1) WO2021120714A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111124953B (zh) * 2019-12-18 2021-04-27 海光信息技术股份有限公司 数据交换方法、装置、处理器及计算机系统
CN112380154A (zh) * 2020-11-12 2021-02-19 海光信息技术股份有限公司 数据传输方法和数据传输装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101814011A (zh) * 2009-02-24 2010-08-25 恩益禧电子股份有限公司 Usb主机控制器以及用于usb主机控制器的控制方法
CN101908036A (zh) * 2010-07-22 2010-12-08 中国科学院计算技术研究所 一种高密度多处理器系统及其节点控制器
CN103514261A (zh) * 2013-08-13 2014-01-15 江苏华大天益电力科技有限公司 一种应用于工业控制系统的数据异步存储及访问机制
CN103955436A (zh) * 2014-04-30 2014-07-30 华为技术有限公司 一种数据处理装置和终端

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100354842C (zh) * 2005-02-23 2007-12-12 华为技术有限公司 一种直接存储器存取装置及单通道双向数据交互实现方法
JP2007108981A (ja) * 2005-10-13 2007-04-26 Hitachi Ltd ストレージ装置及びボリューム間のデータ交換方法
CN103714026B (zh) * 2014-01-14 2016-09-28 中国人民解放军国防科学技术大学 一种支持原址数据交换的存储器访问方法及装置
US10282811B2 (en) * 2017-04-07 2019-05-07 Intel Corporation Apparatus and method for managing data bias in a graphics processing architecture
CN109117416B (zh) * 2018-09-27 2020-05-26 贵州华芯通半导体技术有限公司 插槽间的数据迁移或交换的方法和装置以及多处理器系统
CN110083568B (zh) * 2019-03-29 2021-07-13 海光信息技术股份有限公司 数据交换系统、数据交换命令路由方法、芯片及电子设备
CN110046047A (zh) * 2019-04-15 2019-07-23 Oppo广东移动通信有限公司 一种进程间通信方法、装置及计算机可读存储介质
CN110543433B (zh) * 2019-08-30 2022-02-11 中国科学院微电子研究所 一种混合内存的数据迁移方法及装置
CN111124953B (zh) * 2019-12-18 2021-04-27 海光信息技术股份有限公司 数据交换方法、装置、处理器及计算机系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101814011A (zh) * 2009-02-24 2010-08-25 恩益禧电子股份有限公司 Usb主机控制器以及用于usb主机控制器的控制方法
CN101908036A (zh) * 2010-07-22 2010-12-08 中国科学院计算技术研究所 一种高密度多处理器系统及其节点控制器
CN103514261A (zh) * 2013-08-13 2014-01-15 江苏华大天益电力科技有限公司 一种应用于工业控制系统的数据异步存储及访问机制
CN103955436A (zh) * 2014-04-30 2014-07-30 华为技术有限公司 一种数据处理装置和终端

Also Published As

Publication number Publication date
CN111124953A (zh) 2020-05-08
WO2021120714A1 (zh) 2021-06-24

Similar Documents

Publication Publication Date Title
US9720831B2 (en) Systems and methods for maintaining the coherency of a store coalescing cache and a load cache
US9223579B2 (en) Handling atomic operations for a non-coherent device
KR102245247B1 (ko) 트리거된 동작을 이용하는 gpu 원격 통신
CN103119571B (zh) 用于目录高速缓存的分配和写策略的装置和方法
CN111124953B (zh) 数据交换方法、装置、处理器及计算机系统
CN104508645A (zh) 用于使用多个子锁来控制对具有读取器-写入器锁的共享数据结构的访问的系统和方法
US11709774B2 (en) Data consistency and durability over distributed persistent memory systems
CN109460183B (zh) 具有页位图的高效事务表
US20120054380A1 (en) Opportunistic improvement of mmio request handling based on target reporting of space requirements
US20190384710A1 (en) System and method for managing transactions
EP3036648B1 (en) Enhanced data transfer in multi-cpu systems
CN113626184A (zh) 一种超融合性能优化方法、装置及设备
US9910808B2 (en) Reflective memory bridge for external computing nodes
US9372795B2 (en) Apparatus and method for maintaining cache coherency, and multiprocessor apparatus using the method
CN110401681B (zh) 用于数据传输、数据接收的方法以及电子设备
CN113535611A (zh) 数据处理方法及装置、异构系统
CN112559434B (zh) 一种多核处理器及核间数据转发方法
KR20140108861A (ko) 도메인 사이의 메모리 복사를 위한 방법 및 장치
US20190050253A1 (en) Memory register interrupt based signaling and messaging
CN115174673B (zh) 具备低延迟处理器的数据处理装置、数据处理方法及设备
WO2024000510A1 (zh) 一种处理请求的方法、装置及系统
US20220197840A1 (en) System direct memory access engine offload
US20180373653A1 (en) Commitment of acknowledged data in response to request to commit
CN114356834A (zh) 一种无锁的处理器间通信的方法和系统
CN116745754A (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

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.

CB02 Change of applicant information
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20210617

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

TR01 Transfer of patent right