CN115599737A - 一种异构多核系统、通信方法、芯片、设备及存储介质 - Google Patents

一种异构多核系统、通信方法、芯片、设备及存储介质 Download PDF

Info

Publication number
CN115599737A
CN115599737A CN202211595291.4A CN202211595291A CN115599737A CN 115599737 A CN115599737 A CN 115599737A CN 202211595291 A CN202211595291 A CN 202211595291A CN 115599737 A CN115599737 A CN 115599737A
Authority
CN
China
Prior art keywords
serial port
data
hardware
processing unit
ethernet
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
CN202211595291.4A
Other languages
English (en)
Other versions
CN115599737B (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.)
Nanjing Semidrive Technology Co Ltd
Original Assignee
Nanjing Semidrive 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 Nanjing Semidrive Technology Co Ltd filed Critical Nanjing Semidrive Technology Co Ltd
Priority to CN202211595291.4A priority Critical patent/CN115599737B/zh
Publication of CN115599737A publication Critical patent/CN115599737A/zh
Application granted granted Critical
Publication of CN115599737B publication Critical patent/CN115599737B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17306Intercommunication techniques
    • G06F15/17318Parallel communications techniques, e.g. gather, scatter, reduce, roadcast, multicast, all to all
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2205Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
    • G06F11/2236Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test CPU or processors
    • G06F11/2242Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test CPU or processors in multi-processor systems, e.g. one processor becoming the test master
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2294Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing by remote test
    • 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/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4063Device-to-bus coupling
    • G06F13/4068Electrical coupling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/177Initialisation or configuration control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0002Serial port, e.g. RS232C
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0038System on Chip

Abstract

本申请公开一种异构多核系统,包括不同硬件域,不同硬件域之间硬件隔离,不同硬件域之间通过核间通信通道传输信息,每个硬件域配置有处理单元;其中一硬件域配置的处理单元,通过以太网接收以太网数据,并根据预设规则拆包成不同硬件域串口数据后,传送给对应硬件域配置的处理单元;上述其中一硬件域配置的处理单元,还接收不同硬件域配置的处理单元发送的串口数据,并根据预设规则组包成以太网数据后,通过以太网进行传送。本申请还提供一种异构多核系统的通信方法,能够有效实现对远程异构多核系统SOC的各个核心系统进行维护和调试。

Description

一种异构多核系统、通信方法、芯片、设备及存储介质
技术领域
本申请涉及多核异构芯片技术领域,特别是涉及一种异构多核系统及通信方法。
背景技术
半导体技术在各个行业多种功能需求的推动下,产生了越来越复杂的异构多核芯片(SOC),异构多核芯片内集成了不同的处理器内核并搭配不同的操作系统。目前,异构多核芯片主要由大小核的方式组成,小核运行rtos、RT-THREAD等小系统,大核运行android/linux/ubuntu等系统,每个系统都有对应的调试串口,串口数量比较多。
现有的异构多核芯片主要存在以下问题:
1. 调试过程需从远端主机连接多个调试串口进行调试,但大多数整机产品会被严密封装,没有预留串口,仅预留网口,带来频繁拆卸机器的问题;
2. 由于集成了不同的处理器内核与对应操作系统,存在很多调试串口,采用串口转以太网需要多个网口才能实现,带来调试困难、线路不稳定的问题。
发明内容
为了解决现有技术存在的不足,本申请的目的在于提供一种异构多核系统及通信方法,可以有效实现对远程异构多核SOC的各个核心系统进行维护和调试。
为实现上述目的,本申请提供的异构多核系统,包括:
不同硬件域,所述不同硬件域之间硬件隔离,所述不同硬件域之间通过核间通信通道传输信息,每个硬件域配置有处理单元;
所述不同硬件域其中一硬件域配置的处理单元,通过以太网接收以太网数据,并根据预设规则拆包成不同硬件域串口数据后,传送给对应硬件域配置的处理单元;
所述其中一硬件域配置的处理单元,还接收不同硬件域配置的处理单元发送的串口数据,并根据预设规则组包成以太网数据后,通过以太网进行传送。
进一步地,所述预设规则包括自定义串口协议,所述以太网数据包括自定义串口协议数据,所述自定义串口协议数据包括串口数据相关信息和硬件域相关信息。
进一步地,所述其中一硬件域配置的处理单元,根据所述串口数据相关信息,从接收的以太网数据中拆包成串口数据,传送给所述硬件域相关信息所对应硬件域配置的处理单元;
所述其中一硬件域配置的处理单元,根据发送串口数据的处理单元所在硬件域,在接收的串口数据前增加硬件域相关信息及串口数据相关信息,组包成以太网数据,通过以太网进行传送。
进一步地,所述串口数据包括串口调试数据。
进一步地,每个硬件域配置的处理单元包括:
串口模块,用于接收和传送串口数据;
核间通信模块,用于与其他硬件域配置的处理单元进行核间通信。
更进一步地,所述其中一硬件域配置的处理单元还包括:
以太网模块,用于接收和传送以太网数据;
拆包模块,用于将以太网数据根据预设规则拆包成不同硬件域串口数据;
组包模块,用于将串口数据根据预设规则组包成以太网数据。
为实现上述目的,本申请还提供异构多核系统的通信方法,所述异构多核系统包括不同硬件域,所述不同硬件域之间硬件隔离,所述不同硬件域之间通过核间通信通道传输信息,每个硬件域配置有处理单元;所述通信方法包括:
所述不同硬件域其中一硬件域配置的处理单元,通过以太网接收以太网数据;
所述其中一硬件域配置的处理单元,根据预设规则将接收的以太网数据拆包成不同硬件域串口数据后,传送给对应硬件域配置的处理单元;
所述其中一硬件域配置的处理单元,接收所述不同硬件域配置的处理单元发送的串口数据;
所述其中一硬件域配置的处理单元,根据预设规则将接收的串口数据组包成以太网数据后,通过以太网进行传送。
为实现上述目的,本申请还提供异构多核芯片,包括,如上所述的异构多核系统。
为实现上述目的,本申请提供的电子设备,包括如上所述的车规芯片。
为实现上述目的,本申请提供的计算机可读存储介质,其上存储有计算机指令,当计算机指令运行时执行如上所述的异构多核系统的通信方法的步骤。
本申请的异构多核系统,包括不同硬件域,每个硬件域分别配置了处理单元,其中一硬件域配置的处理单元负责接收以太网数据,根据预设规则拆包成串口数据传送给对应硬件域的处理单元,还负责接收不同硬件域配置的处理单元发送的串口数据,并根据预设规则组包成以太网数据,通过以太网进行传送。其中,不同硬件域之间的通信基于异构多核SOC内部独有的核间通信功能来实现,使远端主机对终端设备整机只需要通过一根网线连接,即可对异构多核SOC的多个系统进行shell调试、log导出、升级维护等操作,有效实现对远程异构多核系统SOC的各个核心系统进行维护和调试。
本申请的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请而了解。
附图说明
附图用来提供对本申请的进一步理解,并且构成说明书的一部分,并与本申请的实施例一起,用于解释本申请,并不构成对本申请的限制。在附图中:
图1为根据本申请的异构多核系统的实施例1的结构示意图;
图2为根据本申请的非指定硬件域的处理单元的结构示意图;
图3为根据本申请的指定硬件域的处理单元的结构示意图;
图4为根据本申请的异构多核系统的实施例2的结构示意图;
图5为根据本申请的异构多核系统的通信方法流程示意图;
图6为根据本申请的异构多核系统不同核之间进行通信时系统运行流程示意图;
图7为根据本申请的自定义串口协议拆包、组包示意图。
具体实施方式
下面将参照附图更详细地描述本申请的实施例。虽然附图中显示了本申请的某些实施例,然而应当理解的是,本申请可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本申请。应当理解的是,本申请的附图及实施例仅用于示例性作用,并非用于限制本申请的保护范围。
应当理解,本申请的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本申请的范围在此方面不受限制。
本文使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。其他术语的相关定义将在下文描述中给出。
需要注意,本申请中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。“多个”应理解为两个或以上。
下面,将参考附图详细地说明本申请的实施例。
实施例1
本实施例提供一种异构多核系统,如图1所示,异构多核系统1包括,不同硬件域10、20…N0,硬件域10、20…N0之间硬件隔离,不同硬件域之间通过异构多核系统的核间通信通道11传输信息。每个硬件域分别配置有处理单元101、201…N01。
其中,硬件域10的处理单元101负责通过以太网接收以太网数据,并将接收到的以太网数据根据预设规则拆包成不同硬件域串口数据后,传送给对应硬件域配置的处理单元。当对应硬件域为硬件域10时,串口数据直接通过本硬件域的串口进行传送;当对应硬件域为硬件域10以外的其他硬件域时,处理单元101将串口数据通过核间通信通道11传送给其他硬件域的处理单元。
处理单元101还负责接收不同硬件域配置的处理单元发送的串口数据,并将接收到的串口数据根据预设规则组包成以太网数据后,通过以太网进行传送。当发送串口数据的硬件域为硬件域10时,串口数据直接通过本硬件域的串口进行传送;当发送串口数据的硬件域为硬件域10以外的其他硬件域时,对应硬件域的处理单元将串口数据通过核间通信通道11传送给硬件域10的处理单元101。
上述预设规则为自定义串口协议。处理单元101接收和传送的以太网数据中包括自定义串口协议数据。自定义串口协议数据包括串口数据相关信息和硬件域相关信息。其中,串口数据相关信息包括串口数据类型、长度、校验等信息;硬件域相关信息包括硬件域处理单元的id信息。硬件域处理单元的id信息即异构多核系统中核的id信息,在核间通信初始化时会进行通信的核的id信息约定,核的id包含在核间通信mailbox的数据头里。
根据上述自定义串口协议,处理单元101根据接收的以太网数据中的自定义串口协议数据中的串口数据相关信息,从以太网数据中拆包出有效的串口数据,传送给自定义串口协议数据中的硬件域相关信息所对应硬件域配置的处理单元。
根据上述自定义串口协议,处理单元101根据发送串口数据的处理单元所在硬件域,在接收的有效的串口数据前增加对应的硬件域相关信息及串口数据相关信息,组包成以太网数据,通过以太网进行传送。
硬件域10为指定硬件域,可以指定为异构多核系统中的任意一个配置了网口资源的硬件域,硬件域10的处理单元101运行以太网服务,其他硬件域为非指定硬件域。硬件域10本域内的串口数据通过串口服务传送,其他硬件域的串口数据通过核间通信服务(mailbox)传送到指定硬件域10,硬件域10按照自定义串口协议将接收的串口数据组包为以太网数据与远端主机进行通信。由此,远端主机PC终端对异构多核系统终端设备整机只需要通过一根网线连接,主机给指定硬件域的指令,通过以太网数据包发送到硬件域10,硬件域10再按照自定义串口协议将数据重新组织为标准串口协议的数据,传送给本硬件域的串口,或通过核间通信服务传送给其他硬件域的串口,从而能够有效减少各核CPU负载,增加异构多核系统的调试的安全性和便捷性。
上述串口数据可以是串口调试、升级维护等数据。基于上述异构多核系统结构,当远端主机PC终端对异构多核系统进行多个硬件域的调试、升级维护时,远端主机PC终端与异构多核系统终端设备整机只需要通过一根网线连接,就能通过以太网进行数据传送,不同硬件域之间的串口数据基于异构多核SOC内部独有的核间通信功能来进行传送,即可实现远端主机PC终端对异构多核SOC的多个核心进行shell调试、log导出、升级维护等操作。
实施例2
本实施例提供实施例1中的处理单元的结构,如图2所示,以硬件域20的处理单元201为例,包括:
串口模块2010,用于接收和传送串口数据;
核间通信模块2011,用于与其他硬件域的处理单元进行核间通信。
如图3所示,用于接收和发送以太网数据的硬件域10的处理单元101除了包括用于接收和传送串口数据的串口模块1010、用于与其他硬件域的处理单元进行核间通信的核间通信模块1011外,还包括:
以太网模块1012,与远端主机PC终端通过以太网互连,用于接收和传送以太网数据;
拆包模块1013,接收以太网模块1012传来的数据,将以太网数据根据预设规则拆包成不同硬件域串口数据;
组包模块1014,接收本硬件域10的处理单元101的串口模块1010或核间通信模块11传来的串口数据,根据预设规则组包成以太网数据。
其中,硬件域10的处理单元101的串口模块1010分别通过拆包模块1013、组包模块1014与以太网模块1012连接,核间通信模块1011也分别通过拆包模块1013、组包模块1014与以太网模块1012。其他硬件域的处理单元的串口模块分别与本硬件域的核间通信模块连接,其他硬件域的处理单元的核间通信模块分别通过核间通信通道11与硬件域10的处理单元101的的核间通信模块1011连接。
硬件域10为指定硬件域,可以指定为异构多核系统中的任意一个配置了网口资源的硬件域,硬件域10的处理单元101运行以太网服务,其他硬件域为非指定硬件域。硬件域10本域内的串口数据通过串口服务传送,其他硬件域的串口数据通过核间通信服务传送到指定硬件域10,硬件域10按照自定义串口协议将接收的串口数据组包为以太网数据与远端主机进行通信。由此,远端主机PC终端对异构多核系统终端设备整机只需要通过一根网线连接,主机给指定硬件域的指令,通过以太网数据包发送到硬件域10,硬件域10再按照自定义串口协议将数据重新组织为串口标准的数据,传送给本硬件域的串口,或通过核间通信服务传送给其他硬件域的串口,从而能够有效减少各核CPU负载,增加异构多核系统的调试的安全性和便捷性。
实施例3
本实施例提供一种异构多核系统,如图4,异构多核系统包括不同硬件域10、20…N0,硬件域10、20…N0之间硬件隔离,不同硬件域之间通过核间通信通道11传输信息,基于异构多核SOC内部独有的核间通信功能实现不同硬件域之间的通信。每个硬件域分别配置有处理单元101、201…N01。如图所示,处理单元101、201、301、401…N01分别配置不同的内核free RTOS、Linux、android、QNX…等。其中,硬件域10的处理单元101配置了网口资源,为指定的与远端主机PC终端进行以太网通信的硬件域。处理单元101的结构组成及功能同实施例2的图3,其他处理单元的结构组成及功能同实施例2的图2。出于简便示意,附图4中未画出处理单元101的拆包模块和组包模块。
结合图2、3、4,硬件域10的处理单元101通过以太网模块1012接收以太网数据,并通过拆包模块1013将接收到的以太网数据根据预设规则拆包成不同硬件域串口数据后,传送给对应硬件域配置的处理单元。当对应硬件域为硬件域10时,串口数据直接通过本硬件域的串口模块1010进行传送;当对应硬件域为硬件域10以外的其他硬件域时,处理单元101将串口数据通过核间通信通道11传送给其他硬件域的处理单元的核间通信模块。
硬件域10的处理单元101还接收不同硬件域的处理单元发送的串口数据,通过组包模块1014将接收到的串口数据根据预设规则组包成以太网数据后,通过以太网进行传送。当发送串口数据的硬件域为硬件域10时,串口数据直接通过本硬件域的串口模块1010传送到组包模块1014;当发送串口数据的硬件域为硬件域10以外的其他硬件域时,对应硬件域的串口模块将串口数据传送给对应硬件域的核间通信模块,再通过核间通信通道11传送给硬件域10的核间通信模块1011。
上述预设规则为自定义串口协议,处理单元101的以太网模块1012接收和传送的以太网数据中包括自定义串口协议数据。自定义串口协议数据包括串口数据相关信息和硬件域相关信息。其中,串口数据相关信息是与有效的串口协议数据有关的信息,包括串口数据类型、长度、校验等信息;硬件域相关信息主要包括硬件域处理单元的id信息。硬件域处理单元的id信息即异构多核系统中核的id信息,在核间通信初始化时会进行通信的核的id信息约定,核的id包含在核间通信mailbox的数据头里。
根据上述自定义串口协议,处理单元101的拆包模块1013根据接收的以太网数据中的自定义串口协议数据中的串口数据相关信息,从以太网数据中拆包出有效的串口数据,传送给自定义串口协议数据中的硬件域相关信息所对应硬件域配置的处理单元。当对应硬件域为硬件域10时,拆包模块1013拆包得到的串口数据直接传送到处理单元101的串口模块1010;当对应硬件域为硬件域10以外的其他硬件域时,拆包模块1013拆包得到的串口数据传送到核间通信模块1011,然后通过核间通信通道11传送给对应硬件域的处理单元的核间通信模块。
根据上述自定义串口协议,处理单元101的组包模块1014根据发送串口数据的处理单元所在硬件域,在接收的有效的串口数据前增加对应的硬件域相关信息及串口数据相关信息,组包成以太网数据,通过以太网进行传送。当发送串口数据的硬件域为本硬件域10时,串口数据直接通过本硬件域的串口模块1010传送给组包模块1014;当发送串口数据的硬件域为硬件域10以外的其他硬件域时,对应硬件域的串口模块将串口数据传送给对应硬件域的核间通信模块,再通过核间通信通道11传送给硬件域10的核间通信模块1011,然后传送给组包模块1014进行组包。
上述串口数据可以是串口调试、升级维护等数据。基于上述异构多核系统结构,当远端主机PC终端对异构多核系统进行多个硬件域的调试、升级维护时,远端主机PC终端与异构多核系统终端设备整机只需要通过一根网线连接,就能通过以太网进行数据传送,本硬件域内串口数据直接通过串口模块进行传送,不同硬件域之间串口数据基于异构多核SOC内部独有的核间通信功能来进行传送,即可实现远端主机PC终端对异构多核SOC的多个核心进行shell调试、log导出、升级维护等操作,不仅可以有效便捷实现对远程SOC的各个系统进行维护和调试,还能够有效减少各核CPU负载,增加异构多核系统的调试的安全性和便捷性。
实施例4
本实施例提供一种异构多核系统的通信方法,异构多核系统1的结构如图1,包括不同硬件域10、20…N0,硬件域10、20…N0之间硬件隔离,不同硬件域之间通过异构多核系统的核间通信通道11传输信息。每个硬件域分别配置有处理单元101、201…N01。其中硬件域10为指定硬件域,可以指定为异构多核系统中的任意一个配置了网口资源的硬件域,其他硬件域为非指定硬件域,硬件域10的处理单元101运行以太网服务。硬件域10本域内的串口数据通过串口服务传送,其他硬件域的串口数据通过核间通信服务传送到指定硬件域10。
如图5所示,本实施例的通信方法包括如下步骤:
S01,硬件域10的处理单元101,通过以太网接收以太网数据;
S02,硬件域10的处理单元101,根据预设规则将接收的以太网数据拆包成不同硬件域串口数据后,传送给对应硬件域配置的处理单元;
S03,硬件域10的处理单元101,接收不同硬件域配置的处理单元发送的串口数据;
S04,硬件域10的处理单元101,根据预设规则将接收的串口数据组包成以太网数据后,通过以太网进行传送。
上述预设规则为自定义串口协议。处理单元101接收和传送的以太网数据中包括自定义串口协议数据。自定义串口协议数据包括串口数据相关信息和硬件域相关信息。其中,串口数据相关信息包括串口数据类型、长度、校验等信息;硬件域相关信息包括硬件域处理单元的id信息。硬件域处理单元的id信息即异构多核系统中核的id信息,在核间通信初始化时会进行通信的核的id信息约定,核的id包含在核间通信mailbox的数据头里。
根据上述自定义串口协议,本实施例的通信方法步骤S02进一步包括:
处理单元101根据接收的以太网数据中的自定义串口协议数据中的串口数据相关信息,从以太网数据中拆包出有效的串口数据,传送给自定义串口协议数据中的硬件域相关信息所对应硬件域配置的处理单元。
根据上述自定义串口协议,本实施例的通信方法步骤S04进一步包括:
处理单元101根据发送串口数据的处理单元所在硬件域,在接收的有效的串口数据前增加对应的硬件域相关信息及串口数据相关信息,组包成以太网数据,通过以太网进行传送。
以图4为例的异构多核系统,包括不同硬件域10、20…N0,硬件域10、20…N0之间硬件隔离,不同硬件域之间通过核间通信通道11传输信息,基于异构多核SOC内部独有的核间通信功能实现不同硬件域之间的通信。每个硬件域分别配置有处理单元101、201…N01。如图所示,处理单元101、201、301、401…N01分别配置不同的内核free RTOS、Linux、android、QNX…等。其中,硬件域10的处理单元101配置了网口资源,为指定的与远端主机PC终端进行以太网通信的硬件域。处理单元101的结构组成及功能同实施例2的图3,其他处理单元的结构组成及功能同实施例2的图2。出于简便示意,附图4中未画出处理单元101的拆包模块和组包模块。
基于图4的异构多核系统,本实施例的通信方法包括如下步骤:
硬件域10的处理单元101通过以太网模块1012接收以太网数据;
拆包模块1013将接收到的以太网数据根据预设规则拆包成不同硬件域串口数据,传送给对应硬件域配置的处理单元;
硬件域10的处理单元101接收不同硬件域配置的处理单元发送的串口数据;
组包模块1014根据预设规则将接收的串口数据组包成以太网数据后,通过以太网进行传送。
上述预设规则为自定义串口协议,处理单元101的以太网模块1012接收和传送的以太网数据中包括自定义串口协议数据。自定义串口协议数据包括串口数据相关信息和硬件域相关信息。其中,串口数据相关信息是与有效的串口协议数据有关的信息,包括串口数据类型、长度、校验等信息;硬件域相关信息主要包括硬件域处理单元的id信息。硬件域处理单元的id信息即异构多核系统中核的id信息,在核间通信初始化时会进行通信的核的id信息约定,核的id包含在核间通信mailbox的数据头里。
根据上述自定义串口协议,本实施例的通信方法进一步包括:
处理单元101的拆包模块1013根据接收的以太网数据中的自定义串口协议数据中的串口数据相关信息,从以太网数据中拆包出有效的串口数据,传送给自定义串口协议数据中的硬件域相关信息所对应硬件域配置的处理单元。
当对应硬件域为硬件域10时,拆包模块1013拆包得到的串口数据直接传送到处理单元101的串口模块1010;
当对应硬件域为硬件域10以外的其他硬件域时,拆包模块1013拆包得到的串口数据传送到核间通信模块1011,然后通过核间通信通道11传送给对应硬件域的处理单元的核间通信模块。
根据上述自定义串口协议,本实施例的通信方法进一步包括:
处理单元101的组包模块1014根据发送串口数据的处理单元所在硬件域,在接收的有效的串口数据前增加对应的硬件域相关信息及串口数据相关信息,组包成以太网数据,通过以太网进行传送。
当发送串口数据的硬件域为本硬件域10时,串口数据直接通过本硬件域的串口模块1010传送给组包模块1014进行组包;
当发送串口数据的硬件域为硬件域10以外的其他硬件域时,对应硬件域的串口模块将串口数据传送给对应硬件域的核间通信模块,再通过核间通信通道11传送给硬件域10的核间通信模块1011,然后传送给组包模块1014进行组包。
如图6所示为本申请的异构多核系统不同核之间进行通信时系统运行流程示意图,包括如下步骤:
1,异构多核系统SOC启动,小核和大核依次跳到不同地址加载运行对应的系统,初始化核间通信服务、串口服务,加载调试串口服务台(uart console)。
2,拥有网口资源的核,加载并初始化以太网服务。按照ISO的7层模型来分,由于串口协议不具有传输层和网络层,所以需要把串口数据组包为ethernet标准帧的数据格式进行传送。
3,其他核的调试串口服务台通过串口获取的数据,通过核间通信服务传送到初始化以太网服务的核。
4,初始化以太网服务的核接收其他各个核的Uart数据,重新组包为标准ethernet帧,并用TCP/IP相关协议封装数据包,通过网线传输。
5,远程终端PC终端与异构多核系统SOC的以太网的应用层使用相关的通信协议,实现远程的数据和指令传输。远程终端输入的debug指令,通过socket发送数据包给拥有网口资源的核的接收端,拆包出有效的串口数据后通过核间通信服务,转发到对应的其他核系统的串口服务台,对应的其他核系统响应指令执行相应的应用程序。
实施例5
本实施例提供一种异构多核芯片,包括,上述实施例的异构多核系统。
实施例6
本实施例提供一种电子设备,包括上述实施例中的异构多核芯片。
实施例7
本实施例提供一种计算机可读存储介质,其上存储有计算机指令,当计算机指令运行时执行上述实施例的异构多核系统的通信方法的步骤。
实施例8
本实施例对上述实施例中根据自定义串口协议进行拆包和组包的流程进行详细说明。如图6所示。
拆包过程:根据以太网协议分层体系结构,异构多核系统终端SOC端应用层接收远端主机PC终端的 TCP/IP数据包,拆解为有效的串口数据,根据自定义串口协议,解析出对应的硬件域CPU核的id信息,串口数据类型、长度、校验等信息,最后把有效的串口数据包通过核间通信功能送到对应的硬件域CPU核的串口服务。
组包过程:当异构多核系统终端SOC有源端的CPU核所在域的串口有数据输入中断产生,串口服务获取到串口数据后,触发核间通信服务进行发送流程;核间通信服务把数据通过mailbox通道送到网卡所在的硬件域的CPU核,CPU核根据自定义的串口协议,把源端CPU核的id信息,串口数据类型、长度、校验等信息封装组成TCP/IP包,最后通过以太网应用层接口把对应的TCP/IP包发送到远端主机PC终端。
通过上述的根据自定义串口协议的拆包和组包过程,实现了远端主机PC终端与异构多核系统终端设备整机通过以太网进行数据传送,不同硬件域之间串口数据基于异构多核SOC内部独有的核间通信功能来进行传送,能够有效便捷实现远端主机PC终端对异构多核SOC的多个核心进行shell调试、log导出、升级维护等操作,能够有效减少各核CPU负载,增加异构多核系统的调试的安全性和便捷性。
本领域普通技术人员可以理解:以上所述仅为本申请的优选实施例而已,并不用于限制本申请,尽管参照前述实施例对本申请进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (12)

1.一种异构多核系统,其特征在于,包括:
不同硬件域,所述不同硬件域之间硬件隔离,所述不同硬件域之间通过核间通信通道传输信息,每个硬件域配置有处理单元;
所述不同硬件域其中一硬件域配置的处理单元,通过以太网接收以太网数据,并根据预设规则拆包成不同硬件域串口数据后,传送给对应硬件域配置的处理单元;
所述其中一硬件域配置的处理单元,还接收不同硬件域配置的处理单元发送的串口数据,并根据预设规则组包成以太网数据后,通过以太网进行传送。
2.如权利要求1所述的异构多核系统,其特征在于:
所述预设规则包括自定义串口协议,所述以太网数据包括自定义串口协议数据,所述自定义串口协议数据包括串口数据相关信息和硬件域相关信息。
3.如权利要求2所述的异构多核系统,其特征在于:
所述其中一硬件域配置的处理单元,根据所述串口数据相关信息,从接收的以太网数据中拆包出串口数据,传送给所述硬件域相关信息所对应硬件域配置的处理单元;
所述其中一硬件域配置的处理单元,根据发送串口数据的处理单元所在硬件域,在接收的串口数据前增加对应硬件域相关信息及串口数据相关信息,组包成以太网数据,通过以太网进行传送。
4.如权利要求1所述的异构多核系统,其特征在于:所述串口数据包括串口调试数据。
5.如权利要求1所述的异构多核系统,其特征在于,每个硬件域配置的处理单元包括:
串口模块,用于接收和传送串口数据;
核间通信模块,用于与其他硬件域配置的处理单元进行核间通信。
6.如权利要求5所述的异构多核系统,其特征在于,所述其中一硬件域配置的处理单元还包括:
以太网模块,用于接收和传送以太网数据;
拆包模块,用于将以太网数据根据预设规则拆包成不同硬件域串口数据;
组包模块,用于将串口数据根据预设规则组包成以太网数据。
7.一种异构多核系统的通信方法,其特征在于,所述异构多核系统包括不同硬件域,所述不同硬件域之间硬件隔离,所述不同硬件域之间通过核间通信通道传输信息,每个硬件域配置有处理单元;所述通信方法包括:
所述不同硬件域其中一硬件域配置的处理单元,通过以太网接收以太网数据;
所述其中一硬件域配置的处理单元,根据预设规则将接收的以太网数据拆包成不同硬件域串口数据后,传送给对应硬件域配置的处理单元;
所述其中一硬件域配置的处理单元,接收所述不同硬件域配置的处理单元发送的串口数据;
所述其中一硬件域配置的处理单元,根据预设规则将接收的串口数据组包成以太网数据后,通过以太网进行传送。
8.如权利要求7所述的异构多核系统的通信方法,其特征在于,所述预设规则包括自定义串口协议,所述以太网数据包括自定义串口协议数据,所述自定义串口协议数据包括串口数据相关信息和硬件域相关信息。
9.如权利要求8所述的异构多核系统的通信方法,其特征在于,
所述其中一硬件域配置的处理单元,根据预设规则将接收的以太网数据拆包成不同硬件域串口数据后,传送给对应硬件域配置的处理单元包括:根据所述串口数据相关信息,从接收的以太网数据中拆包出串口数据,传送给所述硬件域相关信息所对应硬件域配置的处理单元;
所述其中一硬件域配置的处理单元,根据预设规则将接收的串口数据组包成以太网数据后,通过以太网进行传送包括:根据发送串口数据的处理单元所在硬件域,在接收的串口数据前增加对应硬件域相关信息及串口数据相关信息,组包成以太网数据通过以太网进行传送。
10.一种异构多核芯片,其特征在于,所述异构多核芯片包括权利要求1-6中任一项所述的异构多核系统。
11.一种电子设备,其特征在于,所述电子设备包括权利要求10所述的异构多核芯片。
12.一种计算机可读存储介质,其特征在于,其上存储有计算机指令,当计算机指令运行时执行权利要求7-9中任一项所述的异构多核系统的通信方法的步骤。
CN202211595291.4A 2022-12-13 2022-12-13 一种异构多核系统、通信方法、芯片、设备及存储介质 Active CN115599737B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211595291.4A CN115599737B (zh) 2022-12-13 2022-12-13 一种异构多核系统、通信方法、芯片、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211595291.4A CN115599737B (zh) 2022-12-13 2022-12-13 一种异构多核系统、通信方法、芯片、设备及存储介质

Publications (2)

Publication Number Publication Date
CN115599737A true CN115599737A (zh) 2023-01-13
CN115599737B CN115599737B (zh) 2023-02-28

Family

ID=84854155

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211595291.4A Active CN115599737B (zh) 2022-12-13 2022-12-13 一种异构多核系统、通信方法、芯片、设备及存储介质

Country Status (1)

Country Link
CN (1) CN115599737B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116257472A (zh) * 2023-05-15 2023-06-13 上海励驰半导体有限公司 接口控制方法、装置、电子设备及存储介质
CN117149694A (zh) * 2023-10-24 2023-12-01 南京芯驰半导体科技有限公司 基于多核异构的接口控制方法、装置及电子设备
CN117632570A (zh) * 2024-01-25 2024-03-01 上海励驰半导体有限公司 基于多核异构soc的多操作系统诊断方法、装置和系统

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109189711A (zh) * 2018-08-07 2019-01-11 南京磐能电力科技股份有限公司 基于以太网的串行控制台接口及其应用方法
CN109542831A (zh) * 2018-10-28 2019-03-29 西南电子技术研究所(中国电子科技集团公司第十研究所) 机载平台多核虚拟分区处理系统
WO2020151468A1 (zh) * 2019-01-22 2020-07-30 岳秀兰 主次无线设备通过物联网连接建立的车辆远程驾驶体系
CN112650363A (zh) * 2020-12-11 2021-04-13 北京四方继保工程技术有限公司 一种基于平衡式通信cpu节点群的分布式远动机系统与设计方法
CN113219867A (zh) * 2021-04-23 2021-08-06 国网上海能源互联网研究院有限公司 一种多核异构的保护测控装置
CN114006804A (zh) * 2021-11-18 2022-02-01 贵州电网有限责任公司 一种基于集中式保护控制系统架构的配电边缘服务器系统

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109189711A (zh) * 2018-08-07 2019-01-11 南京磐能电力科技股份有限公司 基于以太网的串行控制台接口及其应用方法
CN109542831A (zh) * 2018-10-28 2019-03-29 西南电子技术研究所(中国电子科技集团公司第十研究所) 机载平台多核虚拟分区处理系统
WO2020151468A1 (zh) * 2019-01-22 2020-07-30 岳秀兰 主次无线设备通过物联网连接建立的车辆远程驾驶体系
CN112650363A (zh) * 2020-12-11 2021-04-13 北京四方继保工程技术有限公司 一种基于平衡式通信cpu节点群的分布式远动机系统与设计方法
CN113219867A (zh) * 2021-04-23 2021-08-06 国网上海能源互联网研究院有限公司 一种多核异构的保护测控装置
CN114006804A (zh) * 2021-11-18 2022-02-01 贵州电网有限责任公司 一种基于集中式保护控制系统架构的配电边缘服务器系统

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
AHMED M. AZAB 等: "SICE: a hardware-level strongly isolated computing environment for x86 multi-core platforms", 《CCS \"11: PROCEEDINGS OF THE 18TH ACM CONFERENCE ON COMPUTER AND COMMUNICATIONS SECURITY》 *
BART VERMEULEN 等: "A Network-on-Chip monitoring infrastructure for communication-centric debug of embedded multi-processor SoCs", 《 2009 INTERNATIONAL SYMPOSIUM ON VLSI DESIGN, AUTOMATION AND TEST》 *
詹盼盼 等: "支持多核处理器的星载分区操作系统设计", 《航天器工程》 *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116257472A (zh) * 2023-05-15 2023-06-13 上海励驰半导体有限公司 接口控制方法、装置、电子设备及存储介质
CN116257472B (zh) * 2023-05-15 2023-08-22 上海励驰半导体有限公司 接口控制方法、装置、电子设备及存储介质
CN117149694A (zh) * 2023-10-24 2023-12-01 南京芯驰半导体科技有限公司 基于多核异构的接口控制方法、装置及电子设备
CN117149694B (zh) * 2023-10-24 2024-02-23 南京芯驰半导体科技有限公司 基于多核异构的接口控制方法、装置及电子设备
CN117632570A (zh) * 2024-01-25 2024-03-01 上海励驰半导体有限公司 基于多核异构soc的多操作系统诊断方法、装置和系统
CN117632570B (zh) * 2024-01-25 2024-04-12 上海励驰半导体有限公司 基于多核异构soc的多操作系统诊断方法、装置和系统

Also Published As

Publication number Publication date
CN115599737B (zh) 2023-02-28

Similar Documents

Publication Publication Date Title
CN115599737B (zh) 一种异构多核系统、通信方法、芯片、设备及存储介质
CN101911609B (zh) 用于实现统一连接器架构的系统、设备和方法
US5687314A (en) Method and apparatus for assisting data bus transfer protocol
CN113228567B (zh) 一种信息处理的方法、装置和信息处理系统
US8959172B2 (en) Self-pacing direct memory access data transfer operations for compute nodes in a parallel computer
CN112910932B (zh) 一种数据处理方法、装置及系统
CN109983741A (zh) 经由直接存储器访问设备在虚拟机之间传送分组
CN108228309A (zh) 基于虚拟机的数据包发送和接收方法及装置
EP2568689B1 (en) Download method and system based on management data input/output interface
CN103558812B (zh) 基于fpga和arm的mvb网络四类设备网卡
CN114756494A (zh) 多裸芯互连的标准通信协议与片上包传输协议的转换接口
CN111769999B (zh) 一种usb设备软件的调试方法
CN115622896A (zh) 一种axi4高速总线及多队列仿真验证方法及仿真验证装置
CN208999999U (zh) 数据处理装置
CN106571847A (zh) 一种基于zynq的测试仪表通信装置及方法
CN113094762A (zh) 一种数据处理方法、装置及签名验签服务器
CN115526142A (zh) 以太网降速方法、系统、介质及fpga验证平台
CN112887093B (zh) 用于实现密码算法的硬件加速系统和方法
CN103188264B (zh) 在线网络安全处理器和处理方法
CN111930645B (zh) 一种基于tcpip的通用usb设备网络透传系统及方法
CN114615106A (zh) 环形数据处理系统、方法以及网络设备
CN111327575B (zh) 列车中基于以太网的通信方法和装置
CN114422297A (zh) 一种多场景虚拟网络流量监控方法、系统、终端及介质
CN113051212A (zh) 图形处理器、数据传输方法、装置、电子设备和存储介质
CN111752705A (zh) 一种mcu云平台资源池化系统

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