一种多核异构系统的访问方法及多核异构系统的制作方法

文档序号:6640341阅读:203来源:国知局
一种多核异构系统的访问方法及多核异构系统的制作方法
【专利摘要】本发明实施例公开了一种多核异构系统的访问方法及多核异构系统,涉及计算机【技术领域】,可以在较低的成本下实现用户通过多核异构系统中的主核对从核的访问。具体方案为:多核异构系统包含一个主核和至少一个从核,主核与从核共享一核间内存,主核接收第一用户设备发送的从核访问请求,从核访问请求中携带有待访问的从核的标识;主核调用第一虚拟串口设备VSD,根据从核访问请求中携带的待访问的数据的标识,从第一内存单元中读取数据,第一内存单元中的数据为所述从核调用第二VSD实时写入的;或者,主核调用第一VSD,将从核访问请求中携带的待写入的数据写入第二内存单元,以使得从核调用第二VSD实时读取第二内存单元中的数据。
【专利说明】一种多核异构系统的访问方法及多核异构系统

【技术领域】
[0001]本发明涉及计算机【技术领域】,尤其涉及一种多核异构系统的访问方法及多核异构系统。

【背景技术】
[0002]随着计算机技术的发展,芯片设计水平的提高以及应用需求的提升,多核系统越来越广泛的被应用到产品中。目前采用的多核系统大多选用多核中的一个核作为主核,承担主要的资源管理和复杂的逻辑运算,其他核作为从核,承担逻辑简单但数据量大的工作。
[0003]为了实现用户对多核系统中的从核的访问,配置有多核系统的设备(简称多核设备)需要为用户提供访问该多核系统中从核的能力和手段。如图1所示,现有技术可以在多核系统的每一个操作系统(英文-Operat1n System,简称:OS)(如图1中,主核操作系统OStl、从核操作系统OSjP OS 2)都支持传输控制协议/网际协议(英文!Transmiss1nControl Protocol/Internet Protocol,简称:TCP/IP)协议栈时,由多核系统的主核接管访问网络接口,并在主核中配置主核客户端(如,TELNET/SSH客户端),在从核中配置从核服务端(如,TELNET/SSH服务端)。用户终端可以通过网络接口(如以太口),从TELNET/SSH客户端登录至主核,然后通过主核与从核之间基于TCP/IP的核间通信机制,登录从核中的TELNET/SSH服务端,实现对从核的访问。
[0004]但是存在的问题是,现有技术在实现用户对多核系统中的从核的访问时,要求多核系统的每一个操作系统都支持TCP/IP协议栈;而在较为简单的多核系统中,从核通常并不配置TCP/IP协议栈,在多核系统中为从核配置协议栈的成本较高。并且,在多核异构系统中,不同核运行的操作系统是不同的,运行不同操作系统的核之间的资源是不能够共享的;因此,当多核系统为多核异构系统时,采用现有技术的方法无法实现用户对多核系统中从核的访问。
[0005]因此,需要一种可以在较低的成本下实现用户对多核异构系统中从核访问的方案。


【发明内容】

[0006]本发明的实施例提供一种多核异构系统的访问方法、装置及系统,用以在较低的成本下实现用户通过多核异构系统中的主核对从核的访问。
[0007]为达到上述目的,本发明的实施例采用如下技术方案:
[0008]本发明实施例的第一方面,提供一种多核异构系统的访问方法,所述多核异构系统包含一个主核和至少一个从核,所述主核与每个所述从核共享一核间内存,所述方法包括:
[0009]所述主核接收第一用户设备发送的从核访问请求,所述从核访问请求中携带有待访问的从核的标识;
[0010]所述主核调用第一虚拟串口设备VSD,根据所述从核访问请求中携带的待访问的数据的标识,从第一内存单元中读取数据,所述第一内存单元中的数据为所述从核调用第二 VSD实时写入的;
[0011]或者,所述主核调用所述第一 VSD,将所述从核访问请求中携带的待写入的数据写入第二内存单元,以使得所述从核调用所述第二 VSD实时读取所述第二内存单元中的数据;
[0012]其中,所述第一内存单元和所述第二内存单元构成所述主核与所述从核的共享核间内存;所述第一 VSD为所述主核中基于所述主核与所述从核的共享核间内存创建的VSD ;所述第二 VSD为所述从核中基于所述主核与所述从核的共享核间内存创建的VSD。
[0013]结合第一方面,在一种可能的实现方式中,所述方法还包括:
[0014]在所述多核异构系统启动时,所述主核在所述主核中,创建并初始化所述主核与所述多核异构系统中的每个从核共享的核间内存;
[0015]所述主核基于已创建的每个共享核间内存,创建所述第一 VSD ;
[0016]所述从核基于所述从核与所述主核的共享核间内存,创建所述第二 VSD。
[0017]结合第一方面和第一种可能的实现方式,在第二种可能的实现方式中,在所述主核调用第一虚拟串口设备VSD,根据所述从核访问请求中携带的待访问的数据的标识,从第一内存单元中读取数据之后,所述方法还包括:
[0018]所述主核调用所述第一 VSD,将从所述第一内存单元中读取的数据写入所述第一VSD的第一缓冲单元;
[0019]所述主核通过所述主核中的1接口库提供的1接口,读取所述第一 VSD的第一缓冲单元中的数据,并将从所述第一 VSD的第一缓冲单元中读取的数据写入所述主核的内存。
[0020]结合第二种可能的实现方式,在第三种可能的实现方式中,在所述主核调用第一虚拟串口设备VSD,根据所述从核访问请求中携带的待访问的数据的标识,从第一内存单元中读取数据之前,所述方法还包括:
[0021]所述从核通过所述从核中的1接口库提供的1接口,将所述从核的内存中的数据写入所述第二 VSD的第一缓冲单元;
[0022]所述从核调用所述第二 VSD,实时读取所述第二 VSD的第一缓冲单元中的数据,并将从所述第二 VSD的第一缓冲单元中读取的数据写入所述第一内存单元。
[0023]结合第一方面和第一种可能的实现方式,在第四种可能的实现方式中,所述主核调用所述第一 VSD,将所述从核访问请求中携带的待写入的数据写入第二内存单元,所述方法还包括:
[0024]所述主核通过所述主核中的1接口库提供的1接口,将所述从核访问请求中携带的待写入的数据写入第一 VSD的第二缓冲单元;
[0025]所述主核调用所述第一 VSD,读取并将所述第一 VSD的第二缓冲单元中的数据写入所述第二内存单元。
[0026]结合第四种可能的实现方式,在第五种可能的实现方式中,在所述主核调用所述第一 VSD,将所述从核访问请求中携带的待写入的数据写入第二内存单元之后,所述方法还包括:
[0027]所述从核调用所述第二 VSD,实时读取所述第二内存单元中的数据,并将从所述第二内存单元读取的数据写入所述第二 VSD的第二缓冲单元;
[0028]所述从核通过所述从核中的1接口库提供的1接口,实时读取所述第二 VSD的第二缓冲单元中的数据,并将从所述第二 VSD的第二缓冲单元中读取的数据写入所述从核的内存。
[0029]结合第一方面,在第六种可能的实现方式中,在主核接收第一用户设备发送的从核访问请求,所述从核访问请求包含从核的标识之后,所述方法还包括:
[0030]若在所述主核从所述第一内存单元中读取数据或者所述主核将所述从核访问请求中携带的待写入的数据写入所述第二内存单元的过程中,所述主核接收到第二用户设备发送的从核访问请求,所述主核则指示所述第二用户设备所述从核处于忙碌状态。
[0031]结合第三种可能的实现方式,在第七种可能的实现方式中,在所述从核通过所述从核中的1接口库提供的1接口,将所述从核的内存中的数据写入所述第二 VSD的第一缓冲单元之前,所述方法还包括:
[0032]所述从核对待写入所述第二 VSD的第一缓冲单元的数据中的每个字节进行终端行规程LDISC处理。
[0033]结合第五种可能的实现方式,在第八种可能的实现方式中,在所述从核调用所述第二 VSD,实时读取所述第二内存单元中的数据之后,将从所述第二内存单元读取的数据写入所述第二 VSD的第二缓冲单元之前,所述方法还包括:
[0034]所述从核对从所述第二内存单元中读取的数据进行LDISC处理;
[0035]所述从核将从所述第二内存单元读取的数据写入所述第二 VSD的第二缓冲单元,包括:
[0036]所述从核将从所述第二内存单元读取、并进行LDISC处理后的数据写入所述第二VSD的第二缓冲单元。
[0037]本发明实施例的第二方面,提供一种多核异构系统,包括一个主核和至少一个从核,所述主核与所述从核共享一核间内存,第一内存单元和第二内存单元构成所述主核与所述从核的共享核间内存;
[0038]所述主核,用于接收第一用户设备发送的从核访问请求,所述从核访问请求中携带有待访问的从核的标识;调用第一虚拟串口设备VSD,根据所述从核访问请求中携带的待访问的数据的标识,从第一内存单元中读取数据;或者,调用所述第一 VSD,将所述从核访问请求中携带的待写入的数据写入第二内存单元;
[0039]所述从核,用于调用第二 VSD,将所述第二 VSD的第一缓冲单元中的数据实时写入所述第一内存单元;调用所述第二 VSD,实时读取所述第二内存单元中的数据,并将读取的数据写入所述第二 VSD的第二缓冲单元,并实时读取所述第二 VSD的第二缓冲单元中的数据,并将读取的数据写入所述从核的内存;
[0040]其中,所述第一 VSD为所述主核中基于所述主核与所述从核的共享核间内存创建的VSD ;所述第二 VSD为所述从核中基于所述主核与所述从核的共享核间内存创建的VSD。
[0041]结合第二方面,在第一种可能的实现方式中,所述主核中配置有1接口库,所述主核中配置的1接口库提供访问所述第一 VSD的缓冲单元的1接口 ;
[0042]所述从核中配置有1接口库,所述从核中配置的1接口库提供访问所述第一 VSD的缓冲单元的1接口。
[0043]本发明实施例提供的多核异构系统的访问方法及多核异构系统,与现有技术相比;通过本方案,可以在多核异构系统的主核与每一个从核配置共享核间内存,该共享核间内存由第一内存单元(主核读从核写内存单元)和第二内存单元(主核写从核读内存单元)构成,这样在从核调用第二 VSD实时地将从核中的数据写入第一内存单元的前提下,主核便可以通过调用第一 VSD,从第一内存单元中读取数据;同样的,在主核调用第一 VSD,将从核访问请求中携带的待写入的数据写入第二内存单元的前提下,从核便可以调用第二VSD实时读取第二内存单元中的数据,即可以实现用户通过多核异构系统中的主核对从核的访问。
[0044]并且,由于本方案不需要为多核异构系统中的主核和每个从核配置TCP/IP协议栈,因此可以降低实现用户访问多核异构系统中从核的成本,即可以在较低的成本下实现用户通过多核异构系统中的主核对从核的访问。

【专利附图】

【附图说明】
[0045]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0046]图1为本发明现有技术提供的一种多核系统的结构示意图;
[0047]图2为本发明实施例提供的一种多核异构系统的结构示意图;
[0048]图3为本发明实施例提供的一种多核异构系统的实例结构示意图;
[0049]图4为本发明实施例提供的一种多核异构系统的访问方法的流程框图;
[0050]图5为本发明实施例提供的另一种多核异构系统的实例结构示意图;
[0051]图6为本发明实施例提供的主核的1接口库中的1接口的功能实例示意图;
[0052]图7为本发明实施例提供的从核的1接口库中的1接口的功能实例示意图;
[0053]图8为本发明实施例提供的另一种多核异构系统的实例结构示意图;
[0054]图9为本发明实施例提供的另一种多核异构系统的访问方法的流程框图;
[0055]图10为本发明实施例提供的另一种多核异构系统的访问方法的流程框图;
[0056]图11为本发明实施例提供的另一种多核异构系统的访问方法的流程框图;
[0057]图12为本发明实施例提供的另一种多核异构系统的访问方法中实现将数据由第二内存单元写入第二 VSD的第二缓冲单元的方法流程框图的流程框图;
[0058]图13为本发明实施例提供的另一种多核异构系统的访问方法的流程框图。

【具体实施方式】
[0059]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0060]另外,本文中术语“系统”和“网络”在本文中常被可互换使用。本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
[0061]图2是本发明实施例所应用的多核异构系统的结构示意图。该多核异构系统的结构示意图包括主核和至少一个从核,主核中配置有主核TELNET/SSH服务端,和访问从核客户端(CONNECT客户端);从核中配置有从核服务端(CONNECT服务端);多核异构系统的主核与每一个从核配置共享核间内存,该共享核间内存由第一内存单元(主核读从核写内存单元)和第二内存单元(主核写从核读内存单元),且主核中可以基于主核与每一个从核所共享的共享核间内存创建一个虚拟串口设备(英文Virtual Serial Device,简称:VSD),从核中可以基于从核与主核所共享的共享核间内存配置一个VSD。
[0062]图3为本发明实施例所提供的一种多核异构系统的实例结构示意图。如图3所示,多核异构系统10中包括主核11和至少一个从核12,以主核11中配置有CONNECT客户端,从核12中配置有CONNECT服务端,用户通过登录TELNET/SSH服务端,对多核异构系统中的一个从核12进行访问为例,用户在通过登录TELNET/SSH服务端后,可以通过CONNECT客户端,向主核11发送从核访问请求,其中,从核访问请求中携带有待访问的从核的标识,从核访问请求用于指示从待访问的从核的标识所指示的从核从读取数据或者从核访问请求用于指示向待访问的从核的标识所指示的从核写入数据。
[0063]其中,当从核访问请求用于指示从待访问的从核的标识所指示的从核中读取数据时,从核访问请求中携带有待访问的数据(待读取的数据)的标识,主核11可以通过CONNECT客户端调用主核中基于主核11与从核12的共享核间内存创建的VSD(第一 VSD)从第一内存单元(主核读从核写内存单元)中读取数据,第一内存单元中的数据为从核12调用从核中基于主核11与从核12的共享核间内存创建的VSD (第二 VSD)实时写入的。当从核访问请求用于指示向待访问的从核的标识所指示的从核写入数据时,从核访问请求中携带有待写入的数据,主核11可以通过CONNECT客户端调用第一 VSD将待写入的数据写入第二内存单元,以供从核12调用第二 VSD实时读取第二内存单元中的数据。
[0064]图4为本发明实施例提供的一种图形标签设置方法的流程框图,该方法包括:
[0065]S201、主核接收第一用户设备发送的从核访问请求,从核访问请求中携带有待访问的从核的标识。
[0066]其中,当从核访问请求指示从待访问的从核的标识所指示的从核中读取数据时,从核访问请求中携带有待访问的数据(待读取的数据)的标识,此时,如图4所示,本发明实施例的方法还包括S202:
[0067]S202、主核调用第一 VSD,根据从核访问请求中携带的待访问的数据的标识,从第一内存单元中读取数据,第一内存单元中的数据为从核调用第二 VSD实时写入的。
[0068]其中,当从核访问请求指示向待访问的从核的标识所指示的从核写入数据时,从核访问请求中携带有待写入的数据,此时,如图4所示,本发明实施例的方法还包括S203:
[0069]S203、主核调用第一 VSD,将从核访问请求中携带的待写入的数据写入第二内存单元,以使得从核调用第二 VSD实时读取第二内存单元中的数据。
[0070]本发明实施例提供的多核异构系统的访问方法,与现有技术相比;通过本方案,可以在多核异构系统的主核与每一个从核配置共享核间内存,该共享核间内存由第一内存单元(主核读从核写内存单元)和第二内存单元(主核写从核读内存单元)构成,这样在从核调用第二 VSD实时地将从核中的数据写入第一内存单元的前提下,主核便可以通过调用第一 VSD,从第一内存单元中读取数据;同样的,在主核调用第一 VSD,将从核访问请求中携带的待写入的数据写入第二内存单元的前提下,从核便可以调用第二 VSD实时读取第二内存单元中的数据,即可以实现用户通过多核异构系统中的主核对从核的访问。
[0071]并且,由于本方案不需要为多核异构系统中的主核和每个从核配置TCP/IP协议栈,因此可以降低实现用户访问多核异构系统中从核的成本,即可以在较低的成本下实现用户通过多核异构系统中的主核对从核的访问。
[0072]进一步的,在一种可能的实现方式中,在主核调用第一 VSD,根据从核访问请求中携带的待访问的数据的标识,从第一内存单元中读取数据之前(即S202之前),本发明实施例的方法还可以包括:从核通过从核中的1接口库提供的1接口,将从核的内存中的数据写入第二 VSD的第一缓冲单元;从核调用第二 VSD,实时读取第二 VSD的第一缓冲单元中的数据,并将从第二 VSD的第一缓冲单元中读取的数据写入第一内存单元。
[0073]进一步的,在另一种可能的实现方式中,在主核调用第一 VSD,根据从核访问请求中携带的待访问的数据的标识,从第一内存单元中读取数据之后(即S202之后),本发明实施例的方法还可以包括:主核调用第一 VSD,将从第一内存单元中读取的数据写入第一 VSD的第一缓冲单元;主核通过所述主核中的1接口库提供的1接口,读取第一 VSD的第一缓冲单元中的数据,并将从第一 VSD的第一缓冲单元中读取的数据写入主核的内存。
[0074]进一步的,在另一种可能的实现方式中,主核调用第一 VSD,将从核访问请求中携带的待写入的数据写入第二内存单元(即S203)的具体实现方式可以包括:主核通过主核中的1接口库提供的1接口,将从核访问请求中携带的待写入的数据写入第一 VSD的第二缓冲单元;主核调用第一 VSD,读取并将第一 VSD的第二缓冲单元中的数据写入第二内存单元。
[0075]进一步的,在另一种可能的实现方式中,在主核调用第一 VSD,将从核访问请求中携带的待写入的数据写入第二内存单元之后(即S203之后),本发明实施例的方法还可以包括:从核调用第二 VSD,实时读取第二内存单元中的数据,并将从第二内存单元读取的数据写入第二 VSD的第二缓冲单元;从核通过所述从核中的1接口库提供的1接口,实时读取第二 VSD的第二缓冲单元中的数据,并将从第二 VSD的第二缓冲单元中读取的数据写入从核的内存。
[0076]需要说明的是,基于上述实现方式,如图5所示,本发明实施例提供另一种多核异构系统的实例。如图5所示,主核和每个从核中均配置有1接口库,主核中配置的1接口库提供访问第一 VSD的缓冲单元(第一 VSD的第一缓冲单元和第一 VSD的第二缓冲单元)的1接口,从核中配置的1接口库提供访问第二 VSD的缓冲单元(第二 VSD的第一缓冲单元和第二 VSD的第二缓冲单元)的1接口。
[0077]其中,如图6所示,主核中的1接口库可以提供第一 VSD与主核内存或者主核客户端之间的标准逻辑接口(如标准Open接口、标准Write接口和标准Read接口等);如图7所示,从核中的1接口库可以提供第一 VSD与从核内存或者从核服务端之间的标准逻辑接口(如标准Open接口、标准Write接口和标准Read接口等)。
[0078]进一步的,在一种可能的实现方式中,在从核通过所述从核中的1接口库提供的1接口,将从核的内存中的数据写入第二 VSD的第一缓冲单元之前,本发明实施例的方法还可以包括:从核对待写入第二 VSD的第一缓冲单元的数据中的每个字节进行终端行规程(英文:Line Discipline,简称:LDISC)处理。在从核调用第二 VSD,实时读取第二内存单元中的数据之后,将从第二内存单元读取的数据写入第二 VSD的第二缓冲单元之前,本发明实施例的方法还可以包括:从核对从第二内存单元中读取的数据进行LDISC处理;从核将从第二内存单元读取的数据写入所述第二 VSD的第二缓冲单元,具体可以包括:从核将从第二内存单元读取、并进行LDISC处理后的数据写入第二 VSD的第二缓冲单元。
[0079]需要说明的是,基于上述实现方式,如图5所示,本发明实施例提供另一种多核异构系统的实例。如图5所示,每个从核中均配置有行规程处理模块,用于对待写入从核的内存的数据进行行规程处理,或者对从从核的内存读取的数据进行行规程处理。其中,从对数据进行行规程处理的方法可以参考现有技术中进行行规程处理的相关方法,本发明实施例这里不再赘述。
[0080]需要说明的是,如图8所示,主核的VSD (第一 VSD)包含第一缓冲单元和第二缓冲单元。第一 VSD的第一缓冲单元为第一 VSD的缓冲单元中,主核调用第一 VSD,实时写入读取自第一内存单元的数据,以供通过主核中的1接口库提供的1接口,实时读取的缓冲单元;第一 VSD的第二缓冲单元为第一 VSD的缓冲单元中,主核通过主核中的1接口库提供的1接口,写入主核的内存中的数据,以供主核调用第二 VSD读取的缓冲单元。
[0081]如图8所示,从核的VSD (第二 VSD)包含第一缓冲单元和第二缓冲单元。第二 VSD的第一缓冲单元为第二 VSD的缓冲单元中,从核通过从核中的1接口库提供的1接口,写入从核的内存中的数据,以供从核调用第二 VSD读取的缓冲单元;第二VSD的第二缓冲单元为第二 VSD的缓冲单元中,从核调用第二 VSD,实时写入读取自第二内存单元的数据,以供通过从核中的1接口库提供的1接口,实时读取的缓冲单元。
[0082]图9是本发明另一实施例提供的多核异构系统的访问方法,以主核读取从核中的数据为例,对本发明实施例的方法进行说明。该方法包括:
[0083]S301、在多核异构系统启动时,主核在主核中,创建并初始化主核与多核异构系统中的每个从核共享的核间内存。
[0084]S302、主核基于已创建的每个共享核间内存,创建第一 VSD。
[0085]S303、从核基于从核与主核的共享核间内存,创建第二 VSD。
[0086]S304、从核通过从核中的1接口库提供的1接口,读取从核的内存中的数据,并对读取的数据进行LDISC处理。
[0087]其中,从核可以在多核异构系统启动时,通过配置在从核中的从核服务端调用从核中的1接口库提供的1接口,读取从核的内存中的数据,并对读取的数据进行LDISC处理。其中,从核对读取的数据进行LDISC处理的方法可以参考现有技术中对数据进行LDISC处理的相关方法,本发明实施例这里不再赘述。
[0088]示例性的,从核服务端可以为如图3、图5或图8所示的CONNECT服务端。
[0089]S305、从核通过从核中的1接口库提供的1接口,将从从核的内存中读取并进行LDISC处理后的数据写入第二 VSD的第一缓冲单元。
[0090]S306、从核调用第二 VSD,实时读取第二 VSD的第一缓冲单元中的数据,并将从第二 VSD的第一缓冲单元中读取的数据写入第一内存单元。
[0091 ] S307、主核通过主核客户端的输入端口接收第一用户设备发送的从核访问请求,从核访问请求中携带有待访问的从核的标识和待访问的数据的标识。
[0092]示例性的,主核客户端可以为如图3、图5或图8所示的CONNECT客户端。
[0093]S308、主核调用第一 VSD,根据从核访问请求中携带的从核的标识和待访问的数据的标识,从第一内存单元中读取数据。
[0094]S309、主核调用第一 VSD,将从第一内存单元中读取的数据写入第一 VSD的第一缓冲单元。
[0095]S310、主核通过主核中的1接口库提供的1接口,读取第一 VSD的第一缓冲单元中的数据,并将从第一 VSD的第一缓冲单元中读取的数据写入主核的内存。
[0096]S311、主核读取写入主核的内存的数据,并通过主核客户端的输出端口向第一用户设备发送读取的数据。
[0097]本发明实施例提供的多核异构系统的访问方法,与现有技术相比;通过本方案,可以在多核异构系统的主核与每一个从核配置共享核间内存,该共享核间内存由第一内存单元(主核读从核写内存单元)和第二内存单元(主核写从核读内存单元)构成,这样在从核调用第二 VSD实时地将从核中的数据写入第一内存单元的前提下,主核便可以通过调用第一 VSD,从第一内存单元中读取数据;同样的,在主核调用第一 VSD,将从核访问请求中携带的待写入的数据写入第二内存单元的前提下,从核便可以调用第二 VSD实时读取第二内存单元中的数据,即可以实现用户通过多核异构系统中的主核对从核的访问。
[0098]并且,由于本方案不需要为多核异构系统中的主核和每个从核配置TCP/IP协议栈,因此可以降低实现用户访问多核异构系统中从核的成本,即可以在较低的成本下实现用户通过多核异构系统中的主核对从核的访问。
[0099]图10是本发明另一实施例提供的多核异构系统的访问方法,以主核读取从核中的数据为例,对本发明实施例的方法进行说明。该方法包括:
[0100]S401、在多核异构系统启动时,主核在主核中,创建并初始化主核与多核异构系统中的每个从核共享的核间内存。
[0101]S402、主核基于已创建的每个共享核间内存,创建第一 VSD。
[0102]S403、从核基于从核与主核的共享核间内存,创建第二 VSD。
[0103]S404、主核通过主核客户端的输入端口接收第一用户设备发送的从核访问请求,从核访问请求中携带有待访问的从核的标识和待写入的数据的标识。
[0104]S405、主核通过主核中的1接口库提供的1接口,将从核访问请求中携带待写入的数据写入第一 VSD的第二缓冲单元。
[0105]S406、主核调用第一 VSD,读取并将第一 VSD的第二缓冲单元中的数据写入第二内存单元。
[0106]S407、从核调用第二 VSD,实时读取第二内存单元中的数据。
[0107]S408、从核对从第二内存单元中读取的数据进行LDISC处理。
[0108]S409、从核将从第二内存单元读取、并进行LDISC处理后的数据写入第二 VSD的第二缓冲单元。
[0109]S410、从核通过从核中的1接口库提供的1接口,实时读取第二 VSD的第二缓冲单元中的数据。
[0110]S411、从核对从第二 VSD的第二缓冲单元中读取的数据中的每个字节进行LDISC处理,并将处理后的数据写入从核的内存。
[0111]本发明实施例提供的多核异构系统的访问方法,与现有技术相比;通过本方案,可以在多核异构系统的主核与每一个从核配置共享核间内存,该共享核间内存由第一内存单元(主核读从核写内存单元)和第二内存单元(主核写从核读内存单元)构成,这样在从核调用第二 VSD实时地将从核中的数据写入第一内存单元的前提下,主核便可以通过调用第一 VSD,从第一内存单元中读取数据;同样的,在主核调用第一 VSD,将从核访问请求中携带的待写入的数据写入第二内存单元的前提下,从核便可以调用第二 VSD实时读取第二内存单元中的数据,即可以实现用户通过多核异构系统中的主核对从核的访问。
[0112]并且,由于本方案不需要为多核异构系统中的主核和每个从核配置TCP/IP协议栈,因此可以降低实现用户访问多核异构系统中从核的成本,即可以在较低的成本下实现用户通过多核异构系统中的主核对从核的访问。
[0113]示例性的,以下从软件运行的角度,以从核进行数据写入和数据读取为例,给出从核执行将数据由第二 VSD的第一缓冲单元写入该从核与主核的共享核间内存(第一内存单元)以及从核执行从该从核与主核的共享核间内存(第二内存单元)读取数据,并写入第二 VSD的第二缓冲单元的具体驱动流程,如图11所示,该具体驱动流程包括:
[0114]S501、从核驱动开始执行;
[0115]S502、创建定时器;
[0116]S503、创建VSD数据发送事件队列;
[0117]S504、判断定时器超时,是否检测VSD数据发送事件;若是,则执行S505 ;
[0118]S505、开启第二 VSD ;
[0119]S506、判断第二 VSD的第二缓冲单元当前是否可进行数据的写入;若第二缓冲单元当前可进行数据的写入,则执行S507 ;
[0120]S507、判断第二内存单元中是否有未读取数据;若第二内存单元中有未读取数据,则执行S508 ;
[0121]S508、读取第二内存单元中的未读取数据;
[0122]S509、对读取的数据进行LDISC处理,并将处理后的数据写入第二 VSD的第二缓冲单元;
[0123]S510、通知CONNECT服务端第二 VSD的第二缓冲单元中有未读取的数据;
[0124]S511、判断第一内存单元当前是否可进行数据的写入;若第一内存单元当前可进行数据的写入,则执行S512;
[0125]S512、判断第二 VSD的第一缓冲单元中是否有待写入的数据,若第二 VSD的第一缓冲单元中有待写入的数据,则执行S513 ;
[0126]S513、读取第二 VSD的第一缓冲单元中的待写入的数据;
[0127]S514、将读取到的待写入的数据写入第一内存单元;
[0128]S515、通知CONNECT客户端第一内存单元中有未读取的数据。
[0129]示例性的,以下从软件运行的角度,给出从核通过从核中的1接口库提供的1接口将从核的内存中的数据写入第二 VSD的第一缓冲单元的具体驱动流程,如图12所示,该具体驱动流程包括:
[0130]S601、CONNECT服务端通过从核中的1接口库提供的1接口读取从核内存中的数据;
[0131]S602、C0NNECT服务端依次遍历读取的数据中每一字节的数据,并对每一字节的数据进行LDISC处理;
[0132]S603、LDISC模块确定读取的数据是否需要继续进行LDISC处理;
[0133]其中,LDISC模块可以在遍历读取的数据中每一字节的数据,并对每一个字节都进行LDISC处理后,返回LDISC处理完毕,继续执行S604 ;可以在未遍历完读取的数据中每一字节的数据,并对每一个字节都进行LDISC处理后,返回需要继续对读取的数据进行LDISC处理,继续执行S602 ;
[0134]S604、CONNECT服务端通过从核中的1接口库提供的1接口将处理后的数据写入第二 VSD的第一缓冲单元;
[0135]S605,CONNECT服务端向第二 VSD发送VSD数据发送事件,以通知第二 VSD的第一缓冲单元由待读取的数据。
[0136]示例性的,以下从软件运行的角度,以主核进行数据写入和数据读取为例,给出主核执行将数据由第一 VSD的第二缓冲单元写入主核与一从核的共享核间内存(第二内存单元)以及主核执行从主核与该从核的共享核间内存(第一内存单元)读取数据,并将读取的数据写入第一 VSD的第一缓冲单元的具体驱动流程,如图13所示,该具体驱动流程包括:
[0137]S701、主核驱动开始执行;
[0138]S702、创建定时器;
[0139]S703、创建VSD数据发送事件队列;
[0140]S704、判断定时器超时,是否检测VSD数据发送事件;若是,则执行S705 ;
[0141]S705、开启第一 VSD ;
[0142]S706、判断第一 VSD的第一缓冲单元当前是否可进行数据的写入;若第一缓冲单元当前可进行数据的写入,则执行S707 ;
[0143]S707、判断第一内存单元中是否有未读取数据;若第一内存单元中有未读取数据,则执行S708 ;
[0144]S708、读取第一内存单元中的未读取数据;
[0145]S709、将读取的数据写入第一 VSD的第一缓冲单元;
[0146]S710、通知CONNECT客户端第一 VSD的第一缓冲单元中有未读取的数据;
[0147]S711、判断第二内存单元当前是否可进行数据的写入;若第二内存单元当前可进行数据的写入,则执行S712;
[0148]S712、判断第一 VSD的第二缓冲单元中是否有待写入的数据,若第一 VSD的第二缓冲单元中有待写入的数据,则执行S713 ;
[0149]S713、读取第一 VSD的第二缓冲单元中的待写入的数据;
[0150]S714、将读取的数据写入第二内存单元;
[0151]S715、通知CONNECT服务端第二内存单元中有未读取的数据。
[0152]对应地,本发明还提出了一种多核异构系统,如图2或图3所示,包括一个主核和至少一个从核,所述主核与所述从核共享一核间内存,第一内存单元和第二内存单元构成所述主核与所述从核的共享核间内存。
[0153]所述主核,用于接收第一用户设备发送的从核访问请求,所述从核访问请求中携带有待访问的从核的标识;调用第一虚拟串口设备VSD,根据所述从核访问请求中携带的待访问的数据的标识,从第一内存单元中读取数据;或者,调用所述第一 VSD,将所述从核访问请求中携带的待写入的数据写入第二内存单元。
[0154]所述从核,用于调用第二 VSD,将所述第二 VSD的第一缓冲单元中的数据实时写入所述第一内存单元;调用所述第二 VSD,实时读取所述第二内存单元中的数据,并将读取的数据写入所述第二 VSD的第二缓冲单元,并实时读取所述第二 VSD的第二缓冲单元中的数据,并将读取的数据写入所述从核的内存。
[0155]其中,所述第一 VSD为所述主核中基于所述主核与所述从核的共享核间内存创建的VSD ;所述第二 VSD为所述从核中基于所述主核与所述从核的共享核间内存创建的VSD。
[0156]进一步的,如图6所示,所述主核中配置有1接口库,所述主核中配置的1接口库提供访问所述第一 VSD的缓冲单元的1接口。
[0157]所述从核中配置有1接口库,所述从核中配置的1接口库提供访问所述第一 VSD的缓冲单元的1接口。
[0158]需要说明的是,本发明实施例提供的多核异构系统中部分功能模块的具体描述可以参考其他实施例中的对应内容,本实施例这里不再详细赘述。
[0159]本发明实施例提供的多核异构系统,与现有技术中,实现用户对多核系统中的从核的访问时,要求多核系统的每一个操作系统都支持TCP/IP协议栈成本较高,且在多核异构系统中,运行不同操作系统的核之间的资源不能共享相比;通过本方案,可以在多核异构系统的主核与每一个从核配置共享核间内存,该共享核间内存由第一内存单元(主核读从核写内存单元)和第二内存单元(主核写从核读内存单元),这样在从核调用第二 VSD(基于该共享核间内存配置在从核中的VSD)实时地将从核中的数据写入第一内存单元的前提下,主核便可以通过调用第一 VSD (基于该共享核间内存配置的VSD),从第一内存单元中读取数据;同样的,在主核调用第一 VSD,将从核访问请求中携带的待写入的数据写入第二内存单元的前提下,从核边可以调用第二 VSD实时读取第二内存单元中的数据,即可以实现用户通过多核异构系统中的主核对从核的访问。并且,为多核异构系统的主核与每一个从核配置共享核间内存的成本相比于在多核异构系统中的主核和每个从核都配置TCP/IP协议栈,成本较低。由此可以得出:通过本方案,可以在较低的成本下实现用户通过多核异构系统中的主核对从核的访问。
[0160]在本申请所提供的几个实施例中,应该理解到,所揭露的方法和装置,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0161]上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
[0162]以上所述,仅为本发明的【具体实施方式】,但本发明的保护范围并不局限于此,任何熟悉本【技术领域】的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
【权利要求】
1.一种多核异构系统的访问方法,其特征在于,所述多核异构系统包含一个主核和至少一个从核,所述主核与每个所述从核共享一核间内存,所述方法包括: 所述主核接收第一用户设备发送的从核访问请求,所述从核访问请求中携带有待访问的从核的标识; 所述主核调用第一虚拟串口设备VSD,根据所述从核访问请求中携带的待访问的数据的标识,从第一内存单元中读取数据,所述第一内存单元中的数据为所述从核调用第二 VSD实时写入的; 或者,所述主核调用所述第一 VSD,将所述从核访问请求中携带的待写入的数据写入第二内存单元,以使得所述从核调用所述第二 VSD实时读取所述第二内存单元中的数据; 其中,所述第一内存单元和所述第二内存单元构成所述主核与所述从核的共享核间内存;所述第一 VSD为所述主核中基于所述主核与所述从核的共享核间内存创建的VSD ;所述第二 VSD为所述从核中基于所述主核与所述从核的共享核间内存创建的VSD。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括: 在所述多核异构系统启动时,所述主核在所述主核中,创建并初始化所述主核与所述多核异构系统中的每个从核共享的核间内存; 所述主核基于已创建的每个共享核间内存,创建所述第一 VSD ; 所述从核基于所述从核与所述主核的共享核间内存,创建所述第二 VSD。
3.根据权利要求1或2所述的方法,其特征在于,在所述主核调用第一虚拟串口设备VSD,根据所述从核访问请求中携带的待访问的数据的标识,从第一内存单元中读取数据之后,所述方法还包括: 所述主核调用所述第一 VSD,将从所述第一内存单元中读取的数据写入所述第一 VSD的第一缓冲单元; 所述主核通过所述主核中的1接口库提供的1接口,读取所述第一 VSD的第一缓冲单元中的数据,并将从所述第一 VSD的第一缓冲单元中读取的数据写入所述主核的内存。
4.根据权利要求3所述的方法,其特征在于,在所述主核调用第一虚拟串口设备VSD,根据所述从核访问请求中携带的待访问的数据的标识,从第一内存单元中读取数据之前,所述方法还包括: 所述从核通过所述从核中的1接口库提供的1接口,将所述从核的内存中的数据写入所述第二 VSD的第一缓冲单元; 所述从核调用所述第二 VSD,实时读取所述第二 VSD的第一缓冲单元中的数据,并将从所述第二 VSD的第一缓冲单元中读取的数据写入所述第一内存单元。
5.根据权利要求1或2所述的方法,其特征在于,所述主核调用所述第一VSD,将所述从核访问请求中携带的待写入的数据写入第二内存单元,包括: 所述主核通过所述主核中的1接口库提供的1接口,将所述从核访问请求中携带的待写入的数据写入所述第一 VSD的第二缓冲单元; 所述主核调用所述第一 VSD,读取并将所述第一 VSD的第二缓冲单元中的数据写入所述第二内存单元。
6.根据权利要求5所述的方法,其特征在于,在所述主核调用所述第一VSD,将所述从核访问请求中携带的待写入的数据写入第二内存单元之后,所述方法还包括: 所述从核调用所述第二 VSD,实时读取所述第二内存单元中的数据,并将从所述第二内存单元读取的数据写入所述第二 VSD的第二缓冲单元; 所述从核通过所述从核中的1接口库提供的1接口,实时读取所述第二 VSD的第二缓冲单元中的数据,并将从所述第二 VSD的第二缓冲单元中读取的数据写入所述从核的内存。
7.根据权利要求1所述的方法,其特征在于,在主核接收第一用户设备发送的从核访问请求,所述从核访问请求包含从核的标识之后,所述方法还包括: 若在所述主核从所述第一内存单元中读取数据或者所述主核将所述从核访问请求中携带的待写入的数据写入所述第二内存单元的过程中,所述主核接收到第二用户设备发送的从核访问请求,所述主核则指示所述第二用户设备所述从核处于忙碌状态。
8.根据权利要求4所述的方法,其特征在于,在所述从核通过所述从核中的1接口库提供的1接口,将所述从核的内存中的数据写入所述第二 VSD的第一缓冲单元之前,所述方法还包括: 所述从核对待写入所述第二 VSD的第一缓冲单元的数据中的每个字节进行终端行规程LDISC处理。
9.根据权利要求6所述的方法,其特征在于,在所述从核调用所述第二VSD,实时读取所述第二内存单元中的数据之后,将从所述第二内存单元读取的数据写入所述第二 VSD的第二缓冲单元之前,所述方法还包括: 所述从核对从所述第二内存单元中读取的数据进行LDISC处理; 所述从核将从所述第二内存单元读取的数据写入所述第二 VSD的第二缓冲单元,包括: 所述从核将从所述第二内存单元读取、并进行LDISC处理后的数据写入所述第二 VSD的第二缓冲单元。
10.一种多核异构系统,其特征在于,包括一个主核和至少一个从核,所述主核与每个所述从核共享一核间内存,第一内存单元和第二内存单元构成所述主核与所述从核的共享核间内存; 所述主核,用于接收第一用户设备发送的从核访问请求,所述从核访问请求中携带有待访问的从核的标识;调用第一虚拟串口设备VSD,根据所述从核访问请求中携带的待访问的数据的标识,从第一内存单元中读取数据;或者,调用所述第一 VSD,将所述从核访问请求中携带的待写入的数据写入第二内存单元; 所述从核,用于调用第二 VSD,将所述第二 VSD的第一缓冲单元中的数据实时写入所述第一内存单元;调用所述第二 VSD,实时读取所述第二内存单元中的数据,并将读取的数据写入所述第二 VSD的第二缓冲单元,并实时读取所述第二 VSD的第二缓冲单元中的数据,并将读取的数据写入所述从核的内存; 其中,所述第一 VSD为所述主核中基于所述主核与所述从核的共享核间内存创建的VSD ;所述第二 VSD为所述从核中基于所述主核与所述从核的共享核间内存创建的VSD。
11.根据权利要求10所述的系统,其特征在于,所述主核中配置有1接口库,所述主核中配置的1接口库提供访问所述第一 VSD的缓冲单元的1接口 ; 所述从核中配置有1接口库,所述从核中配置的1接口库提供访问所述第二 VSD的缓冲单元的1接口。
【文档编号】G06F9/46GK104461716SQ201410834554
【公开日】2015年3月25日 申请日期:2014年12月29日 优先权日:2014年12月29日
【发明者】王佑刚, 罗向征 申请人:迈普通信技术股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1