CN110046050A - 一种核间数据传输的装置和方法 - Google Patents

一种核间数据传输的装置和方法 Download PDF

Info

Publication number
CN110046050A
CN110046050A CN201810041708.XA CN201810041708A CN110046050A CN 110046050 A CN110046050 A CN 110046050A CN 201810041708 A CN201810041708 A CN 201810041708A CN 110046050 A CN110046050 A CN 110046050A
Authority
CN
China
Prior art keywords
communication agent
data
internuclear
processor core
storage inside
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
CN201810041708.XA
Other languages
English (en)
Other versions
CN110046050B (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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201810041708.XA priority Critical patent/CN110046050B/zh
Priority to PCT/CN2019/071726 priority patent/WO2019141157A1/zh
Publication of CN110046050A publication Critical patent/CN110046050A/zh
Application granted granted Critical
Publication of CN110046050B publication Critical patent/CN110046050B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/54Interprogram communication
    • 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/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Systems (AREA)
  • Error Detection And Correction (AREA)

Abstract

本申请实施例公开了一种核间数据传输的装置和方法,该装置包括:耦合至外部总线的第一处理子系统和第二处理子系统,其中,处理子系统均包含通信代理、处理器核和内部存储模块,当需要传输核间数据时,处理器核通知通信代理,由通信代理完成核间数据的传输,并由通信代理通知处理器核对核间数据进行处理,该装置的通信代理分布式部署在各处理子系统内部,降低了核间数据传输的时延,提升了处理器核的处理效率。

Description

一种核间数据传输的装置和方法
技术领域
本申请涉及处理器技术领域,尤其涉及一种核间数据传输的装置和方法。
背景技术
目前,随着半导体工艺的演进,芯片的集成度越来越高,同时由于多媒体应用的快速发展、海量数据的处理需求以及芯片承载功能的复杂度提升,处理器芯片朝着多核化的方向发展,其中多核片上系统(System on Chip,SOC)芯片是典型代表,一颗复杂的SOC芯片的核可能超过20个。除处理器芯片之外,大型计算机、服务器以及个人电脑(PersonalComputer,PC)等都在发展多核架构。多核之间进行消息通信存在核间通信时延,现有的核间通信时延除了软件运行时间还有核与核之间频繁的消息通信以及核访问外设带来的时延。现有的长期演进(Long Term Evolution,LTE)系统对处理时延的要求为1ms,而未来第五代(5th Generation,5G)移动通信系统要求时延为1/8ms,因此如5G等新的应用场景对多核架构的芯片的处理能力和处理时延提出了更高的要求。
当前通用的核间消息通信通过直接内存存取(Direct Memory Access,DMA)搬移实现加速,DMA作为核间加速器部署在系统总线上,DMA在进行核间消息搬移时要多次读写外部寄存器,且要跨越系统总线,造成处理时延长,不满足5G处理时延要求;且在多次读写外部寄存器的过程中发送消息的中央处理单元(Central Processing Unit,CPU)要挂起等待,降低了CPU的处理效率。因此如何降低核间消息通信的时延从而提升多核处理性能成为一个亟待解决的问题。
发明内容
本申请实施例提供一种核间数据传输的装置和方法,以降低核间消息通信的时延提升多核处理性能。
本申请第一方面提供了一种核间数据传输的装置,该装置包括:第一处理子系统和第二处理子系统,该第一处理子系统和该第二处理子系统均耦合至外部总线,其中,该第一处理子系统包含第一通信代理、第一处理器核和第一内部存储模块,该第二处理子系统包含第二通信代理、第二处理器核和第二内部存储模块;该第一处理器核,用于通知该第一通信代理有核间数据需要传输;该第一通信代理,用于将该核间数据从该第一内部存储模块传输到该第二内部存储模块并通知该第二通信代理有该核间数据需要处理;该第二通信代理,用于向该第二处理器核发送中断请求消息;该第二处理器核,用于响应该中断请求消息对该核间数据进行处理。
在需要进行核间数据传输时,发送方的处理器核仅需要通知通信代理有核间数据需要传输,然后由通信代理将核间数据从第一处理子系统的第一内部存储模块传输到第二处理子系统的第二内部存储模块,由于通信代理位于处理子系统内部,不需要用到外部DMA,降低了处理时延,提升了核间通信时处理器核的处理效率。
在一种可能的设计中,在通知所述第一通信代理有核间数据需要传输之前,该第一处理器核还用于:生成核间数据;将该核间数据写入该第一内部存储模块中。
在上述方案中,内部存储模块位于处理子系统内部,生成的核间数据存入内部存储模块无需跨系统总线,时延很小。在一种可能的设计中,在通知该第一通信代理有核间数据需要传输之前,所述第一处理器核还用于:生成所述核间数据的参数信息,该参数信息用于指示所述核间数据的目的地址、数据长度或数据类型中的至少一项;将该参数信息写入所述第一内部存储模块中。
在一种可能的设计中,该第一通信代理具体用于:从所述第一内部存储模块读取所述参数信息和所述核间数据;根据该参数信息的指示将所述核间数据写入所述第二内部存储模块中;将所述参数信息发送给所述第二通信代理并通知所述第二通信代理有所述核间数据需要处理。
在一种可能的设计中,该第一处理器核还用于:在第一内部存储模块中查询第二内部存储模块的存储空间状态;当该存储空间状态指示第二内部存储模块的存储空间充足时,通知第一通信代理有该核间数据需要传输。通过以上方案,在进行核间数据传输之前先查询第二内部存储模块即接收方的内部存储模块的存储空间状态,可以避免由于接收方存储空间不足导致的核间数据传输失败。
在一种可能的设计中,响应该中断请求消息对该核间数据进行处理之后,第二处理器核还用于:更新该第二内部存储模块的存储空间状态;将该存储空间状态通知第二通信代理;该第二通信代理还用于,将该存储空间状态通知第一通信代理;该第一通信代理进一步用于,将该存储空间状态写入该第一内部存储模块中。通过以上方案,在第二处理器核对核间数据进行处理之后,对第二内部存储模块的存储空间状态进行更新,并将更新之后的存储空间状态通过第二通信代理及第一通信代理反馈给第一内部存储模块,使得第一处理器核可以查询到第二内部存储模块最新的存储状态,从而确保查询结果的正确性。
在一种可能的设计中,该第一通信代理和该第一处理器核通过第一内部总线或者通过端口通信;该第二通信代理和该第二处理器核通过第二内部总线或者通过端口通信。
通过以上方案,通信代理和处理器核之间的通信不需要跨越外部系统总线,处理器核通知通信代理的时延小。
在一种可能的设计中,该第一通信代理和该第二通信代理通过该外部总线通信。
在一种可能的设计中,该第一处理子系统通过第一总线接口耦合至外部总线,该第二处理子系统通过第二总线接口耦合至该外部总线。
在一种可能的设计中,该第一处理器核,具体用于通过写该第一通信代理的寄存器通知该第一通信代理有该核间数据需要处理。
在一种可能的设计中,该第一处理器核和该第一内部存储模块通过硬件端口直接相连,该第二处理器核和该第二内部存储模块通过硬件端口直接相连。
在一种可能的设计中,该第一内部存储模块和该第二内部存储模块为低时延随机存储器LLRAM。
本申请第二方面提供了一种核间数据传输的方法,该方法包括:
第一处理子系统中的第一处理器核通知第一处理子系统中的第一通信代理有核间数据需要传输;第一通信代理将核间数据从该第一处理子系统中的第一内部存储模块传输到第二处理子系统中的第二内部存储模块并通知该第二处理子系统中的第二通信代理有该核间数据需要处理;该第二通信代理向该第二处理子系统中的第二处理器核发送中断请求消息;该第二处理器核响应该中断请求消息对该核间数据进行处理。
在上述方法中,在需要进行核间数据传输时,发送方的处理器核仅需要通知通信代理有核间数据需要传输,然后由通信代理将核间数据从第一处理子系统的第一内部存储模块传输到第二处理子系统的第二内部存储模块,由于通信代理位于处理子系统内部,不需要用到外部DMA,降低了处理时延,提升了核间通信时处理器核的处理效率。
在一种可能的设计中,在该第一处理子系统中的第一处理器核通知该第一处理子系统中的第一通信代理有核间数据需要传输之前,该方法还包括:该第一处理器核生成该核间数据;该第一处理器核将该核间数据写入该第一内部存储模块中。
在一种可能的设计中,在该第一处理子系统中的第一处理器核通知该第一处理子系统中的第一通信代理有核间数据需要传输之前,该方法还包括:该第一处理器核生成该核间数据的参数信息,该参数信息用于指示该核间数据的目的地址、数据长度或数据类型中的至少一项;该第一处理器核将该参数信息写入该第一内部存储模块中。
在一种可能的设计中,该第一通信代理将该核间数据从第一内部存储模块传输到第二内部存储模块并通知第二通信代理有该核间数据需要处理包括:该第一通信代理从该第一内部存储模块读取该参数信息和该核间数据;该第一通信代理根据该参数信息的指示将该核间数据写入该第二内部存储模块中;该第一通信代理将该参数信息发送给该第二通信代理并通知该第二通信代理有该核间数据需要处理。
在一种可能的设计中,在该第一处理子系统中的第一处理器核通知该第一处理子系统中的第一通信代理有核间数据需要传输之前,该方法还包括:该第一处理器核在该第一内部存储模块中查询该第二内部存储模块的存储空间状态;该第一处理子系统中的第一处理器核通知该第一处理子系统中的第一通信代理有核间数据需要传输包括:当该存储空间状态指示该第二内部存储模块的存储空间充足时,该第一处理器核通知该第一通信代理有该核间数据需要传输。
在一种可能的设计中,在该第二处理器核响应该中断请求消息对该核间数据进行处理之后,该方法还包括:该第二处理器核更新该第二内部存储模块的存储空间状态并将该存储空间状态通知该第二通信代理;该第二通信代理将该存储空间状态通知该第一通信代理;该第一通信代理将该存储空间状态写入该第一内部存储模块中。
第二处理器核对第二内部存储模块的存储空间状态进行更新,并将更新之后的存储空间状态通过第二通信代理及第一通信代理反馈给第一内部存储模块,使得第一处理器核可以查询到第二内部存储模块最新的存储状态,从而确保查询结果的正确性。
附图说明
图1为本申请实施例提供的一种装置的硬件架构示意图;
图2为本申请实施例提供的一种核间数据传输的装置的结构示意图;
图3为本申请实施例提供的一种核间数据传输的信令交互图。
具体实施方式
本申请的说明书实施例和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元。方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
图1为本申请实施例提供的一种装置100的硬件架构示意图,如图所述,实线框中的部分是芯片组,芯片组之外的部分如通用串行总线(Universal Serial Bus,USB)设备、存储器、显示器(Display)、电池/市电、耳机/扬声器以及天线等为外设装置。其中,虚线框内的部分为系统级芯片(System on Chip,SOC),为主要的芯片部分;电源管理单元(PowerManagement Unit,PMU)、语音编解码Codec、短距离模块和射频(Radio Frequency,RF)模块通常包含模拟电路部分,因此经常在SOC之外,并不集成在SOC主芯片之上。
其中,PMU将若干电源管理器件整合在单个封装内,可实现更高的电源转换效率和更低的功耗,用来外接市电或电池,为SOC供电,也可以利用市电为电池充电;语音编解码Codec用于实现对音频信号的相关处理,例如可以对音频信号进行解码、混音、编码等一系列操作,语音codec作为声音的编解码单元外接耳机或扬声器,实现自然的模拟语音信号与SOC可处理的数字语音信号之间的转换,示例性的,语音Codec可以是通用或专用的声音处理设备,例如可以是集成在处理器芯片上的声音处理模块,可选的,该声音处理模块可以是软件模块或硬件模块,该声音处理模块也可以是独立存在的声音处理芯片;在某些情况下,该语音Codec也可以是集成在SOC上的音频处理子系统;短距离模块包括无线保真(Wireless-Fidelity,WIFI)和蓝牙,也可选择性包括红外、近场通信(Near FieldCommunication,NFC)、调频(Frequency Modulation,FM)收音机或全球定位系统(GlobalPositioning System,GPS)等,应该理解,虽然GPS不是短距离,但可以集成在短距离模块中。RF模块与SOC(虚线框)中的基带通信模块连接,用来实现空口RF信号和基带信号的转换,即混频。对手机而言,接收是下变频,发送则是上变频,示例性的,RF模块可以包括一个或多个模拟射频收发器,还可以包括一个或多个数字射频收发器,RF模块耦合到天线系统,示例性的,该天线系统包含一个或多个天线。可选的,短距离模块也可以耦合至一个或多个天线。应当理解,本申请的各个实施例中,耦合是指通过特定方式的相互联系,包括直接相连或者通过其他设备间接相连,例如可以通过各类接口、传输线、总线等相连。RF模块可用于各类蜂窝无线通信。
SOC部分包括基带通信单元,用来实现基带通信,可支持的模式包括如下制式中的一种或多种:全球移动通信(Global System for Mobile Communication,GSM),码分多址(Code Division Multiple Access,CDMA),CDMA2000-1x、宽带码分多址(Wideband CodeDivision Multiple Access,WCDMA)、时分同步码分多址(Time Division-SynchronousCode Division Multiple Access,TD-SCDMA)、CDMA 2000演进数据优化(Evolution-DataOptimized,EVDO)、时分系统(Time Division System,TDS)、分时长期演进(Time DivisionLong Term Evolution,TD-LTE)、时分双工长期演进(Time Division Duplexing LongTerm Evolution,TDD-LTE)、频分双工长期演进(Frequency Division Duplexing LongTerm Evolution,FDD-LTE)等。基带通信单元可用于实现蜂窝无线通信协议的处理,也可包括物理层(Physical Layer,PHY)、媒体访问控制层(Media Access Control,MAC)、无线资源控制层(Radio Resource Control,RRC)等各个协议层的处理。基带通信单元可用来控制RF模块通过天线系统实现信号和数据的接收和发送,例如可以是语音信号、媒体信号或控制信号等。
示例性的,该装置100可以为多核装置,对应的,其SOC部分可以包括多个处理子系统cluster,图1中示出了三个处理子系统,分别为cluster1、cluster2和cluster3,示例性的,多个处理子系统均可以通过总线接口耦合至系统总线;应当理解,装置100可以只有一个处理子系统或者也可以有三个以上处理子系统,本申请实施例对处理子系统的个数不做限定。一个cluster内具有一个或多个中央处理单元(Central Processing Unit,CPU),一个cluster内部的多个CPU通过内部总线连接在一起,且共用一个总线接口与外部总线实现连接,cluster将多个CPU连接到一起像一个CPU那样工作,提升了装置的数据处理能力。可选的,多个CPU之间也可以通过各种接口机制彼此接口或实现通信。Cluster内部还可以具有存储单元,可选的,可以存在一个或多个可以被cluster内部的所有CPU共享的存储单元,也可以存在被单个CPU独享的存储单元;示例性的,cluster内部的存储单元可以是随机存取存储器(Random Access Memory,RAM)、低时延随机存取存储器(Low latency RandomAccess Memory,LLRAM)或者可存储信息和指令的其他类型的动态存储设备。SOC内部的一个或多个cluster可用来对装置100接收的信号或数据进行处理,例如可以对信号或数据进行编解码、调制、混合、分离或者其他类型的处理。应当理解,这里的CPU也可以是专用处理设备,例如数字信号处理器(Digital Signal Processor,DSP),例如也可以是图像信号处理器(Image Signal Processor,ISP)、高保真(High Fidelity,HiFi)器件等。其中,CPU上可以运行操作系统(Operation System,OS)软件和各种应用程序(Application,APP)软件,并可以选择性的调度其他单元。
Sensor hub是SOC与外界传感器的接口,用来收集和处理外界至少一个传感器的数据,示例性的,如加速计、陀螺仪以及控制传感器等。RAM模块可以存储一些计算或处理过程中的中间数据,如cluster、CPU和基带通信单元的中间计算数据GPU模块是做图形图像处理的单元,可以认为是一种特殊的CPU。I/O模块为SOC与外界的各类接口,例如可以是用于数据传输的USB接口等。SOC中的各部分均可以通过总线或其他连接线相互连接,例如可以是AXI总线,例如可以是AXI3、AXI4总线,Cadence的PIF总线、Crossbar总线或者其他高速互联总线。Display是显示器,可以是触摸屏类的,通过Display接口与总线连接,Display接口可以是Display前的数据处理,比如需要显示的多个图层的混叠、显示数据的缓存或对屏幕亮度的控制调整等。
SOC外部的存储器可以是非掉电易失性存储器,例如是EMMC(Embedded MultiMedia Card,嵌入式多媒体卡)、UFS(Universal Flash Storage,通用闪存存储)或只读存储器(Read-Only Memory,ROM),或者是可存储静态信息和指令的其他类型的静态存储设备,还可以是掉电易失性存储器(volatile memory),例如随机存取存储器(Random AccessMemory,RAM)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,EEPROM)、只读光盘(Compact Disc Read-Only Memory,CD-ROM)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的程序代码并能够由计算机或智能终端例如手机登存取的任何其他计算机可读存储介质,但不限于此。应当理解,存储模块一般与SOC是分离的,通常是一个或一组芯片。
应当理解,图1中的装置100仅仅是一种示例,对装置100的具体形态不构成限定,装置100还可以包括图1中未显示出来的现有的或者将来可能增加的其他组成部分,例如可以包括用来做手机支付的NFC模块,通常会外置在SOC外;比如还有一些3D加速器,用来做3D图像处理;比如摄像头camera的信号处理电路,或者display的一些处理模块电路等。
图2为本申请实施例提供的一种核间数据传输的装置200的结构示意图。图中示出的装置200由两个处理子系统构成,分别为第一处理子系统201和第二处理子系统202,这两个处理子系统均耦合至外部总线,应当理解,耦合是指通过特定方式的相互联系,包括直接相连或者通过其他设备间接相连,可选的,第一处理子系统201和第二处理子系统202可以各自通过一个总线接口耦合至外部总线,从而两个处理子系统之间可以通过外部总线实现通信,例如实现数据或信息的传输。可选的,装置200也可以由其他个数的处理子系统构成,例如可以由3个或5个处理子系统构成,本申请实施例对处理子系统的个数不做限定。
第一处理子系统201包括:第一通信代理2011,第一处理器核2012和第一内部存储模块2013。第二处理子系统202包括:第二通信代理2021,第二处理器核2022和第二内部存储模块2023。在一些可选的实施方式中,通信代理(2011和2021)包括若干寄存器和逻辑电路,可以具有信息存储、读取等功能,可选的,通信代理还可以具有数据处理功能,例如可以解析参数。在一些可选的方案中,第一处理器核2012和第二处理器核2022具体可以为通用CPU,CPU一般由控制电路、运算器和寄存器组成;可选的,第一处理器核2012和第二处理器核2022也可以为专用处理设备,例如可以是ISP、DSP或HiFi等。可选的,一个处理子系统中可以只有一个处理器核,如图2中所示的那样,一个处理子系统也可以有多个处理器核,这些多个处理器核通过内部总线或单元互联总线彼此相连,并经过同一个总线接口与外部总线通信。在一些可选的方案中,第一内部存储模块2013和第二内部存储模块2023可以为随机存取存储器(Random Access Memory,RAM)、低时延随机存取存储器(Low latencyRandom Access Memory,LLRAM)或者可存储信息和指令的其他类型的动态存储设备。内部存储模块(2013和2023)可用于存储处理子系统生成的数据、参数信息和存储空间状态等信息。
其中第一通信代理2011与第一处理器核2012通过第一内部总线2014相耦合,应当理解,耦合是指通过特定方式的相互联系,包括直接相连或者通过其他设备间接相连,也可以说第一通信代理2011与第一处理器核2012通过第一内部总线2014进行通信,例如进行数据和消息的传输等。可选的,第一通信代理2011与第一处理器核2012也可以通过端口直接通信。对应的,第二通信代理2021与第二处理器核2022通过第二内部总线2024进行通信实现数据和信息的传输,或者通过端口直接通信。应当理解,内部总线为处理子系统内部的总线,用于将处理子系统内部的各个处理单元连接在一起,内部总线也可以称作单元互联总线。示例性的,第一内部总线和第二内部总线可以是AXI总线,例如AXI3和AXI4总线,也可以是PIF总线或者其他高速互联总线。可选的,内部总线可以包括地址总线、数据总线和控制总线等。可选的,第一处理器核2012与第一内部存储模块2013、以及第二处理器核2022与第二内部存储模块2023可以通过硬件端口直接相连,而不需要经过总线,因此处理器核可以快速访问内部存储模块。
下面以第一处理器核2012作为发送方处理器核,第二处理器核2022作为接收方处理器核对装置200的各个模块在核间数据传输的过程中的功能进行描述,应当理解,也可以将第二处理器核2022作为发送方处理器核,第一处理器核2012作为接收方处理器核,本申请实施例对此不做限定。
第一处理器核2012,在一些可选的方案中,用于生成数据,并将所生成的数据写入第一内部存储模块2013的,所生成的数据可以为核间数据,核间数据为需要跨子系统传输的数据,例如可以为由第一处理子系统发送给第二处理子系统的数据;可选的,当需要进行核间数据传输时,第一处理器核生成所述核间数据。
在一些可选的方案中,第一处理器核2012还用于生成核间数据的参数信息,该参数信息可以包括核间数据的长度、核间数据的目的地址以及核间数据的类型等,第一处理器核2012将所生成的参数信息也写入第一内部存储模块2013中。
在一些可选的方案中,在启动核间数据传输之前,第一处理器核2012从第一内部存储模块2013中查询第二内部存储模块2023即接收方存储模块的存储空间状态,当该存储空间状态指示第二内部存储模块2023的存储空间充足时,通知第一通信代理2011有所述核间数据需要传输。可选的,第一处理器核2012通过第一内部总线2014通知第一通信代理2011有核间数据需要传输,具体的,第一处理器核2012通过第一内部总线2014将有核间数据需要传输的消息写入第一通信代理2011的寄存器中。
在一些可选的方案中,在第一处理器核2012需要进行核间数据传输时,可以先在第一内部存储模块2013中查询第二内部存储模块2023的存储空间状态,当该存储空间状态指示第二内部存储模块2023的存储空间充足时,再由第一处理器核2012生成核间数据和相对应的参数信息,并存入第一内部存储模块2013中,进一步的,第一处理器核2012通过写寄存器操作通知第一通信代理2011有核间数据需要传输。
第一通信代理2011,在收到第一处理器核的通知之后,启动核间数据传输,将核间数据从第一内部存储模块2013传输到第二内部存储模块2023。具体的,第一通信代理2011从第一内部存储模块2013中读取参数信息,并解析该参数信息得到核间数据的数据长度、目的地址和数据类型等信息,然后从第一内部存储模块2013中读取核间数据并根据解析出的参数信息将该核间数据通过外部总线203写入第二内部存储模块2023,例如写入参数信息指示的目的地址中。
第一通信代理2011,可选的,可以在核间数据传输结束之后,通知第二通信代理2021有核间数据需要处理。可选的,也可以在核间数据搬移的过程中通知第二通信代理2021有核间数据需要处理,或者,也可以在启动核间数据搬移的同时通知第二通信代理2021有核间数据需要处理。可选的,第一通信代理2011将核间数据的数据长度、目的地址、数据类型等参数信息通过外部总线203发送给第二通信代理2021。
第二通信代理2021,用于在接收到第一通信代理2011有核间数据需要处理的通知之后通知第二处理器核2022有核间数据需要处理,例如可以向第二处理器核2022发送中断请求消息以便告知第二处理器核有核间数据需要处理;可选的,第二通信代理2021将核间数据的参数消息通过第二内部总线2024发送给第二处理器核。
第二处理器核2022,用于响应第二通信代理2021的中断请求消息,对核间数据进行处理;在一种可选的方案中,第二处理器核根据参数消息中的目的地址从第二内部存储模块2023中读出所述核间数据,并根据数据长度以及数据类型等消息对核间数据进行处理。在一种可选的方案中,当数据处理完成后,第二处理器核2022更新第二内部存储模块2023的存储空间状态,并将更新之后的存储空间状态通知第二通信代理2021,具体的,第二处理器核2022将一条包含更新状态的软件指令通过第二内部总线2024写到第二通信代理2021的寄存器中,该软件指令用于指示第二内部存储模块2023的存储空间的大小。
第二通信代理2021将接收到的存储空间状态通知第一通信代理2011,可选的,第二通信代理2021将接收到的存储空间状态通过外部系统总线203写入第一通信代理2011的寄存器中。
第一通信代理2011将接收到的存储空间状态写入第一内部存储模块2013中,可选的,第一通信代理2011将接收到的存储空间状态通过第一内部总线2014写入第一内部存储模块2013中,从而使得第一处理器核2012可以在第一内部存储模块2013中查询到第二内部存储模块2023的存储空间状态,然后在接收方存储空间状态充足的时候通知第一通信代理2011启动核间数据传输。
本申请实施例提供的核间数据传输装置,在需要进行核间数据传输时,处理器核仅需要将生成的核间数据和参数信息存入内部存储模块中,并通知通信代理有核间数据需要传输,然后由通信代理完成核间数据的传输,在通信代理进行核间传输的过程中,处理器核可以去执行其他指令;另外,由于内部存储模块和通信代理都位于处理子系统内部,处理器核在内部存储模块中存数据及通知通信代理都不需要跨系统总线,也无需访问外部寄存器,降低了处理时延,提升了核间通信时处理器核的处理效率。
应当理解,本申请所提供的装置实施例仅仅是示意性的,图2中的单元划分仅仅是一种逻辑功能划分,实际实现时可以有另外的划分方式。例如多个模块可以结合或者可以集成到另一个系统。各个模块相互之间的耦合可以是通过一些接口实现,这些接口通常是电性通信接口,但是也不排除可能是机械接口或其它的形式接口。因此,作为分离部件说明的模块可以是或者也可以不是物理上分开的,既可以位于一个地方,也可以分布到同一个或不同设备的不同位置上。
在对本申请实施例的核间数据传输的装置进行描述之后,下面对本申请实施例中一种具体的核间数据传输的方法进行描述,图3为该核间数据传输的方法的信令交互图。该核间数据传输的方法基于多核装置,例如可以是如图1或图2中所示的多核装置,也可以称为多处理子系统装置。
可选的,该方法包括步骤301、产生核间数据和参数信息,写入LLRAM1。
在该核间数据传输的方法中,cluster1为发送方处理子系统,cluster2为接收方处理子系统,对应的,核间数据由cluster1生成,并传输到cluster2中。可选的,从cluster1传输到cluster2的数据可以是事先存储在LLRAM1中,而并不一定是由CPU1生成,例如可以是由其他处理子系统发送过来存储在LLRAM1中的数据。
可选的,cluster1内部的CPU1产生核间数据和参数信息,并将生成的核间数据和对应的参数信息写入LLRAM1中。可选的,CPU1可以是装置200中的第一处理器核2012,LLRAM1可以是装置200中的第一内部存储模块2013,对于CPU1和LLRAM1的可能形式具体请参考装置200的介绍,此处不再赘述。LLRAM1为低时延随机存取存储器,与CPU1通过硬件端口直接相连,CPU1将生成的数据存入LLRAM1中时延很小可忽略不计。可选的,该参数信息可以包括核间数据的长度、核间数据的目的地址以及核间数据的类型等信息。
可选的,该方法包括步骤302、在LLRAM1中查询LLRAM2的存储空间状态。
Cluster1的LLRAM1中存储有cluster2的LLRAM2的存储空间状态,具体的,该存储空间状态用于指示LLRAM2的存储空间大小,可选的,还可以用于指示存储空间对应的具体的存储地址等。应当理解,当LLRAM2的存储空间发生变化时,LLRAM1中存储的LLRAM2的存储空间状态也会同步更新。当CPU1需要传输核间数据给cluster2时,需要事先确认一下cluster2是否有足够的存储空间接收该核间数据,当存储空间充足时,再启动核间数据传输。
在一些可选的方案中,步骤301和步骤302的顺序可以调换,即可以先查询接收方的存储空间是否充足,当存储空间充足时,CPU1生成核间数据和相对应的参数信息,将生成的核间数据和相对应的参数信息写入LLRAM1中。
步骤303、通知Proxy_CPU1有核间数据需要发送。
Proxy_CPU1可以是装置200的第一通信代理2011,在需要进行核间数据传输时,CPU1通知Proxy_CPU1有核间数据需要传输,可选的,CPU1将需要传输核间数据的消息通过内部总线写入Proxy_CPU1的寄存器中。
步骤304、从LLRAM1读取参数信息和核间数据。
Proxy_CPU1在接到CPU1的通知之后,从LLRAM1中读取参数信息,对该参数信息进行解析,得到核间数据的数据长度、目的地址和数据类型等信息,进一步的,Proxy_CPU1从LLRAM1中读取核间数据。
步骤305、根据参数信息将核间数据写到LLRAM2。
具体的,根据解析出的参数信息将该核间数据通过外部总线写入LLRAM2中,例如写入参数信息指示的目的地址中,该目的地址可用于指示LLRAM2的一段存储空间。
步骤306、将核间数据通知给Proxy_CPU2。
Proxy_CPU1通知Proxy_CPU2有核间数据需要处理,具体的,Proxy_CPU1将核间数据的数据长度、目的地址、数据类型等参数信息通过外部总线发送给Proxy_CPU2,使得核间数据的相关信息对于cluster2已知。
可选的,Proxy_CPU1可以在核间数据传输结束之后通知Proxy_CPU2有核间数据需要处理;可选的,Proxy_CPU1可以在核间数据传输的过程中通知Proxy_CPU2有核间数据需要处理;可选的,Proxy_CPU1也可以在启动核间数据搬移的同时通知Proxy_CPU2有核间数据需要处理。
步骤307、发送中断请求消息通知CPU2有核间数据待处理。
具体的,Proxy_CPU2在接收到Proxy_CPU1有核间数据需要处理的通知之后通知CPU2对该核间数据进行处理,例如可以向CPU2发送中断请求消息以便告知CPU2有核间数据需要处理;可选的,Proxy_CPU2将核间数据的参数消息通过内部总线发送给CPU2,使得CPU2可以得知核间数据存储的地址、核间数据的长度和具体类型,可选的,CPU2可以根据这些参数消息对核间数据的处理做好准备。可选的,该参数消息可以同中断请求消息一起发送给CPU2,也可以在发送中断请求消息之后再发送给CPU2。
步骤308、响应中断请求消息对核间数据进行处理。
CPU2响应Proxy_CPU2的中断请求消息,对核间数据进行处理。在一种可选的方案中,CPU2根据参数消息中的目的地址从LLRAM2中读出所述核间数据,并根据数据长度以及数据类型等消息对核间数据进行处理。
可选的,该方法还可以包括:
步骤309、更新LLRAM2的存储空间状态,并将更新结果通知Proxy_CPU2。
在一种可选的方案中,当数据处理完成后,CPU2更新LLRAM2的存储空间状态,并将更新之后的存储空间状态通知Proxy_CPU2,在一种可选的方案中,CPU2将一条包含更新状态的软件指令通过内部总线写到Proxy_CPU2的寄存器中,该软件指令用于指示LLRAM2的存储空间的大小。
可选的,该方法包括步骤310、将更新结果通知给Proxy_CPU1。
Proxy_CPU2将接收到的存储空间状态通知Proxy_CPU1,可选的,Proxy_CPU2将接收到的存储空间状态通过外部系统总线写入Proxy_CPU1的寄存器中。
可选的,该方法包括步骤311、将更新结果写入LLRAM1中。
Proxy_CPU1将接收到的存储空间状态写入LLRAM1中,可选的,Proxy_CPU1将接收到的存储空间状态通过内部总线写入LLRAM1中,对LLRAM1中存储的LLRAM2的存储空间状态进行更新,从而使得CPU1可以在LLRAM1中查询到LLRAM2最新的存储空间状态,然后在接收方存储空间状态充足的时候通知Proxy_CPU1启动核间数据传输。
本申请实施例提供的核间数据传输的方法,在基于该核间数据传输的方法进行核间数据传输时,处理器核仅需要将生成的核间数据和参数信息存入内部存储模块中,并通知通信代理有核间数据需要传输,然后由通信代理完成核间数据的传输,在通信代理进行核间传输的过程中,处理器核可以去执行其他指令;另外,由于内部存储模块和通信代理都位于处理子系统内部,处理器核在内部存储模块中存数据及通知通信代理都不需要跨系统总线,也无需访问外部寄存器,降低了处理时延,提升了核间通信时处理器核的处理效率。
以上所述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。例如,装置实施例中的一些具体操作可以参考之前的方法实施例。

Claims (14)

1.一种核间数据传输的装置,其特征在于,该装置包括:
第一处理子系统和第二处理子系统,所述第一处理子系统和所述第二处理子系统均耦合至外部总线,其中,所述第一处理子系统包含第一通信代理、第一处理器核和第一内部存储模块,所述第二处理子系统包含第二通信代理、第二处理器核和第二内部存储模块;
所述第一处理器核,用于通知所述第一通信代理有核间数据需要传输;
所述第一通信代理,用于将所述核间数据从所述第一内部存储模块传输到所述第二内部存储模块并通知所述第二通信代理有所述核间数据需要处理;
所述第二通信代理,用于向所述第二处理器核发送中断请求消息;
所述第二处理器核,用于响应所述中断请求消息对所述核间数据进行处理。
2.根据权利要求1所述的装置,其特征在于,在所述通知所述第一通信代理有核间数据需要传输之前,所述第一处理器核还用于:
生成所述核间数据;
将所述核间数据写入所述第一内部存储模块中。
3.根据权利要求1或2所述的装置,其特征在于,在所述通知所述第一通信代理有核间数据需要传输之前,所述第一处理器核还用于:
生成所述核间数据的参数信息,所述参数信息用于指示所述核间数据的目的地址、数据长度或数据类型中的至少一项;
将所述参数信息写入所述第一内部存储模块中。
4.根据权利要求3所述的装置,其特征在于,所述第一通信代理具体用于:
从所述第一内部存储模块读取所述参数信息和所述核间数据;
根据所述参数信息的指示将所述核间数据写入所述第二内部存储模块中;
将所述参数信息发送给所述第二通信代理并通知所述第二通信代理有所述核间数据需要处理。
5.根据权利要求1至4任一项所述的装置,其特征在于,所述第一处理器核还用于:
在所述第一内部存储模块中查询所述第二内部存储模块的存储空间状态;
当所述存储空间状态指示所述第二内部存储模块的存储空间充足时,通知所述第一通信代理有所述核间数据需要传输。
6.根据权利要求5所述的装置,其特征在于,响应所述中断请求消息对所述核间数据进行处理之后,所述第二处理器核还用于:
更新所述第二内部存储模块的所述存储空间状态;
将所述存储空间状态通知所述第二通信代理;
所述第二通信代理还用于,将所述存储空间状态通知所述第一通信代理;
所述第一通信代理进一步用于,将所述存储空间状态写入所述第一内部存储模块中。
7.根据权利要求1至6任一项所述的装置,其特征在于,所述第一通信代理和所述第一处理器核通过第一内部总线或者通过端口通信;所述第二通信代理和所述第二处理器核通过第二内部总线或者通过端口通信。
8.根据权利要求1至7任一项所述的装置,其特征在于,所述第一通信代理和所述第二通信代理通过所述外部总线通信。
9.一种核间数据传输的方法,其特征在于,所述方法包括:
第一处理子系统中的第一处理器核通知所述第一处理子系统中的第一通信代理有核间数据需要传输;
所述第一通信代理将所述核间数据从所述第一处理子系统中的第一内部存储模块传输到第二处理子系统中的第二内部存储模块并通知所述第二处理子系统中的第二通信代理有所述核间数据需要处理;
所述第二通信代理向所述第二处理子系统中的第二处理器核发送中断请求消息;
所述第二处理器核响应所述中断请求消息对所述核间数据进行处理。
10.根据权利要求9所述的方法,其特征在于,在所述第一处理子系统中的第一处理器核通知所述第一处理子系统中的第一通信代理有核间数据需要传输之前,所述方法还包括:
所述第一处理器核生成所述核间数据;
所述第一处理器核将所述核间数据写入所述第一内部存储模块中。
11.根据权利要求9或10所述的方法,其特征在于,在所述第一处理子系统中的第一处理器核通知所述第一处理子系统中的第一通信代理有核间数据需要传输之前,所述方法还包括:所述第一处理器核生成所述核间数据的参数信息,所述参数信息用于指示所述核间数据的目的地址、数据长度或数据类型中的至少一项;
所述第一处理器核将所述参数信息写入所述第一内部存储模块中。
12.根据权利要求11所述的方法,其特征在于,所述第一通信代理将所述核间数据从第一内部存储模块传输到第二内部存储模块并通知第二通信代理有所述核间数据需要处理包括:
所述第一通信代理从所述第一内部存储模块读取所述参数信息和所述核间数据;
所述第一通信代理根据所述参数信息的指示将所述核间数据写入所述第二内部存储模块中;所述第一通信代理将所述参数信息发送给所述第二通信代理并通知所述第二通信代理有所述核间数据需要处理。
13.根据权利要求9至12任一项所述的方法,其特征在于,在所述第一处理子系统中的第一处理器核通知所述第一处理子系统中的第一通信代理有核间数据需要传输之前,所述方法还包括:
所述第一处理器核在所述第一内部存储模块中查询所述第二内部存储模块的存储空间状态;所述第一处理子系统中的第一处理器核通知所述第一处理子系统中的第一通信代理有核间数据需要传输包括:
当所述存储空间状态指示所述第二内部存储模块的存储空间充足时,所述第一处理器核通知所述第一通信代理有所述核间数据需要传输。
14.根据权利要求10至13任一项所述的方法,其特征在于,在所述第二处理器核响应所述中断请求消息对所述核间数据进行处理之后,所述方法还包括:
所述第二处理器核更新所述第二内部存储模块的存储空间状态并将所述存储空间状态通知所述第二通信代理;
所述第二通信代理将所述存储空间状态通知所述第一通信代理;
所述第一通信代理将所述存储空间状态写入所述第一内部存储模块中。
CN201810041708.XA 2018-01-16 2018-01-16 一种核间数据传输的装置和方法 Active CN110046050B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201810041708.XA CN110046050B (zh) 2018-01-16 2018-01-16 一种核间数据传输的装置和方法
PCT/CN2019/071726 WO2019141157A1 (zh) 2018-01-16 2019-01-15 一种核间数据传输的装置和方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810041708.XA CN110046050B (zh) 2018-01-16 2018-01-16 一种核间数据传输的装置和方法

Publications (2)

Publication Number Publication Date
CN110046050A true CN110046050A (zh) 2019-07-23
CN110046050B CN110046050B (zh) 2024-03-01

Family

ID=67273513

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810041708.XA Active CN110046050B (zh) 2018-01-16 2018-01-16 一种核间数据传输的装置和方法

Country Status (2)

Country Link
CN (1) CN110046050B (zh)
WO (1) WO2019141157A1 (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112148339A (zh) * 2020-09-29 2020-12-29 苏州海鹏科技有限公司 一种双核芯片及其程序更新方法
CN112506851A (zh) * 2020-12-02 2021-03-16 广东电网有限责任公司佛山供电局 一种解决多核访问冲突的soc芯片架构构建方法
CN112559432A (zh) * 2020-12-22 2021-03-26 上海金卓科技有限公司 一种多核通讯系统
CN113392062A (zh) * 2020-03-12 2021-09-14 Oppo广东移动通信有限公司 数据存储方法、装置、电子设备和计算机可读存储介质

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11888938B2 (en) * 2021-07-29 2024-01-30 Elasticflash, Inc. Systems and methods for optimizing distributed computing systems including server architectures and client drivers

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102779110A (zh) * 2011-05-11 2012-11-14 扬智科技股份有限公司 基于远端代码调用和数据访问的多核心系统及其控制方法
CN102866971A (zh) * 2012-08-28 2013-01-09 华为技术有限公司 传输数据的装置、系统及方法
CN103176941A (zh) * 2013-04-09 2013-06-26 华为技术有限公司 核间通信方法和代理装置
CN104424033A (zh) * 2013-09-02 2015-03-18 联想(北京)有限公司 一种电子设备及数据处理方法
CN105573825A (zh) * 2014-10-11 2016-05-11 华为技术有限公司 一种跨操作系统的任务间同步的方法及装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102779110A (zh) * 2011-05-11 2012-11-14 扬智科技股份有限公司 基于远端代码调用和数据访问的多核心系统及其控制方法
CN102866971A (zh) * 2012-08-28 2013-01-09 华为技术有限公司 传输数据的装置、系统及方法
CN103176941A (zh) * 2013-04-09 2013-06-26 华为技术有限公司 核间通信方法和代理装置
CN104424033A (zh) * 2013-09-02 2015-03-18 联想(北京)有限公司 一种电子设备及数据处理方法
CN105573825A (zh) * 2014-10-11 2016-05-11 华为技术有限公司 一种跨操作系统的任务间同步的方法及装置

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113392062A (zh) * 2020-03-12 2021-09-14 Oppo广东移动通信有限公司 数据存储方法、装置、电子设备和计算机可读存储介质
CN112148339A (zh) * 2020-09-29 2020-12-29 苏州海鹏科技有限公司 一种双核芯片及其程序更新方法
CN112506851A (zh) * 2020-12-02 2021-03-16 广东电网有限责任公司佛山供电局 一种解决多核访问冲突的soc芯片架构构建方法
CN112506851B (zh) * 2020-12-02 2022-02-11 广东电网有限责任公司佛山供电局 一种解决多核访问冲突的soc芯片架构构建方法
CN112559432A (zh) * 2020-12-22 2021-03-26 上海金卓科技有限公司 一种多核通讯系统

Also Published As

Publication number Publication date
WO2019141157A1 (zh) 2019-07-25
CN110046050B (zh) 2024-03-01

Similar Documents

Publication Publication Date Title
CN110046050A (zh) 一种核间数据传输的装置和方法
KR102245247B1 (ko) 트리거된 동작을 이용하는 gpu 원격 통신
US10572410B2 (en) Function-specific communication on a multi-drop bus for coexistence management
US10467154B2 (en) Multi-port multi-sideband-GPIO consolidation technique over a multi-drop serial bus
CN102467473B (zh) 一种在用户空间和内核之间传输数据的方法和装置
CN104769567B (zh) 用于单向传输信息的互连
CN106951388A (zh) 一种基于PCIe的DMA数据传输方法及系统
CN105718216A (zh) 用于具有提交ack的rdma的装置和方法
US20190227971A1 (en) Architecture for consolidating multiple sources of low-bandwidth data over a serial bus
CN103353851A (zh) 一种管理任务的方法和设备
CN110825690B (zh) 多核处理器的核间通信方法及装置
US20200210224A1 (en) Methods and apparatus for verifying completion of groups of data transactions between processors
CN114327930A (zh) 用于异构多核核间通信的系统架构和系统架构的运行方法
CN103324599A (zh) 处理器间通信方法与系统级芯片
CN109656844A (zh) 一种AT24xx EEPROM驱动方法和装置
WO2014134947A1 (zh) 控制信息的收发装置和方法
CN108829530B (zh) 一种图像处理方法及装置
CN114925012A (zh) 一种以太网帧的下发方法、上传方法及相关装置
CN113572800B (zh) 获取应用的下载信息的方法、系统、服务器以及存储介质
CN103618809A (zh) 一种虚拟化环境下通信的方法、装置和系统
CN115766044A (zh) 一种基于用户态协议栈的通信方法及相应装置
WO2021148853A1 (en) Command and response descriptors handling in software and hardware interworking systems
CN116244231A (zh) 一种数据传输方法、装置、系统、电子设备及存储介质
CN111767118B (zh) 基于分布式文件系统的容器存储空间处理方法及装置
CN115037671A (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
GR01 Patent grant
GR01 Patent grant