处理数据的方法和电子设备
处理数据的方法和电子设备
技术领域
本发明涉及计算机技术领域,特别是涉及一种处理数据的方法和电子设备。
背景技术
随着计算机技术的不断发展,电脑、手机等电子设备的应用越来越广泛。电子设备中通常包括CPU(Central Processing Unit,中央处理器)和内存,电子设备可以通过CPU在内存中处理数据,从而运行程序,以实现各种各样的功能。为了提高电子设备的工作效率以及更好地实现某些功能,该电子设备中通常可以包括多个CPU,而为了保证该多个CPU均能够在内存中正常处理数据,亟需一种处理数据的方法。
现有技术中,可以为该多个CPU中的每个CPU分别设置一个内存。当需要通过该CPU处理数据时,可以通过该CPU在与该CPU对应的内存中读取或者写入数据,从而对数据进行处理。但由于内存通常是设置在PCB(Printed Circuit Board,印刷电路板)上的,且每个内存还需要设置对应的外围电路,因此,现有技术会导致PCB版面浪费、提高该电子设备的成本。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的处理数据的方法和电子设备。
依据本发明的一个方面,提供了一种处理数据的方法,所述方法用于电子设备中,所述电子设备包括多个CPU和一个内存,所述多个CPU中包括一个用于对其它CPU访问所述内存进行管理的主CPU,所述方法包括:
当通过第一CPU访问所述内存结束时,通过所述主CPU确定所述多个CPU中即将访问所述内存的第二CPU;
通过所述主CPU断开所述第一CPU与所述内存的连接,建立所述第二CPU与所述内存的连接;
通过所述第二CPU访问所述内存,以在所述内存中进行数据处理。
可选的,所述电子设备还包括多通道控制器;
相应的,所述通过所述主CPU断开所述第一CPU与所述内存的连接,建立所述第二CPU与所述内存的连接,包括:
通过所述主CPU向所述多个CPU中除所述第二CPU之外的其它CPU发送断开指示信号,并向所述第二CPU发送连接指示信号;
通过所述主CPU向所述多通道控制器发送连接控制信号,以指示所述多通道控制器断开所述第一CPU与所述内存的连接,建立所述第二CPU与所述内存的连接,所述连接控制信号用于指示所述多通道控制器对当前访问所述内存的CPU进行切换。
可选的,所述当通过第一CPU访问所述内存结束时,通过主CPU确定所述多个CPU中即将访问所述内存的第二CPU之前,还包括:
接收主CPU选择指令,在所述多个CPU中,将所述主CPU选择指令所选择的CPU确定为所述主CPU。
可选的,所述当通过第一CPU访问所述内存结束时,通过主CPU确定所述多个CPU中即将访问所述内存的第二CPU之前,还包括:
建立所述第一CPU与所述内存之间的连接,并统计所述第一CPU与所述内存之间的连接时长;
当所述连接时长达到预设时长时,确定通过第一CPU访问所述内存结束。
可选的,所述通过所述第二CPU访问所述内存,包括:
通过所述第二CPU修改所述内存中与所述第二CPU对应的存储区域所存储的数据。
可选的,所述当通过第一CPU访问所述内存结束时,通过所述主CPU确定所述多个CPU中即将访问所述内存的第二CPU之前,还包括:
当接收到内存分配指令时,在所述内存中划分得到多个存储区域,所述多个存储区域中任意两个存储区域互不重叠,且所述多个存储区域的数目与所述多个CPU的数目相同;
将所述多个存储区域分别分配给所述多个CPU,使所述多个CPU中的每个CPU均存在对应的存储区域。
可选的,所述通过所述第二CPU访问所述内存,包括:
通过所述第二CPU读取所述内存中任一存储区域所存储的数据。
可选的,所述通过所述第二CPU读取所述内存中任一存储区域所存储的数据,包括:
从第三CPU获取待交换数据的内存地址,所述第三CPU为所述多个CPU中的任一CPU,所述内存地址为所述待交换数据在所述第三CPU对应的存储区域中的存储地址;
通过所述第二CPU根据所述待交换数据的内存地址,从所述第三CPU对应的存储区域中读取所述待交换数据。
可选的,所述从第三CPU获取待交换数据的内存地址,包括:
通过所述第二CPU向所述第三CPU发送数据交换请求,所述数据交换请求中携带待交换数据的文件标识或外存地址,所述外存地址为所述待交换数据在外存中的存储地址,所述外存为所述外存为除所述内存之外的存储设备;
通过所述第三CPU根据所述待交换数据的文件标识或外存地址,从所述外存中读取所述待交换数据,将所述待交换数据存储至所述第三CPU对应的存储区域,向所述第二CPU发送数据交换响应,所述数据交换响应中携带所述待交换数据的内存地址。
可选的,所述内存为DDR SDRAM(Double Data Rate Synchronous DynamicRandom Access Memory,双倍速率同步动态随机存储器)。
根据本发明的另一个方面,提供了一种电子设备,所述设备包括多个CPU和一个内存,所述多个CPU中包括一个用于对其它CPU访问所述内存进行管理的主CPU,所述设备包括:
第一确定模块,用于当通过第一CPU访问所述内存结束时,通过所述主CPU确定所述多个CPU中即将访问所述内存的第二CPU;
第一连接模块,用于通过所述主CPU断开所述第一CPU与所述内存的连接,建立所述第二CPU与所述内存的连接;
处理模块,用于通过所述第二CPU访问所述内存,以在所述内存中进行数据处理。
可选的,所述设备还包括多通道控制器;
相应的,所述连接模块包括:
发送子模块,用于通过所述主CPU向所述多个CPU中除所述第二CPU之外的其它CPU发送断开指示信号,并向所述第二CPU发送连接指示信号;
连接子模块,用于通过所述主CPU向所述多通道控制器发送连接控制信号,以指示所述多通道控制器断开所述第一CPU与所述内存的连接,建立所述第二CPU与所述内存的连接,所述连接控制信号用于指示所述多通道控制器对当前访问所述内存的CPU进行切换。
可选的,所述设备还包括:
选择模块,用于接收主CPU选择指令,在所述多个CPU中,将所述主CPU选择指令所选择的CPU确定为所述主CPU。
可选的,所述设备还包括:
第二连接模块,用于建立所述第一CPU与所述内存之间的连接,并统计所述第一CPU与所述内存之间的连接时长;
第二确定模块,用于当所述连接时长达到预设时长时,确定通过第一CPU访问所述内存结束。
可选的,所述处理模块包括:
修改子模块,用于通过所述第二CPU修改所述内存中与所述第二CPU对应的存储区域所存储的数据。
可选的,所述设备还包括:
划分模块,用于当接收到内存分配指令时,在所述内存中划分得到多个存储区域,所述多个存储区域中任意两个存储区域互不重叠,且所述多个存储区域的数目与所述多个CPU的数目相同;
分配模块,用于将所述多个存储区域分别分配给所述多个CPU,使所述多个CPU中的每个CPU均存在对应的存储区域。
可选的,所述处理模块包括:
读取子模块,用于通过所述第二CPU读取所述内存中任一存储区域所存储的数据。
可选的,所述读取子模块还用于:
从第三CPU获取待交换数据的内存地址,所述第三CPU为所述多个CPU中的任一CPU,所述内存地址为所述待交换数据在所述第三CPU对应的存储区域中的存储地址;
通过所述第二CPU根据所述待交换数据的内存地址,从所述第三CPU对应的存储区域中读取所述待交换数据。
可选的,所述读取子模块还用于:
通过所述第二CPU向所述第三CPU发送数据交换请求,所述数据交换请求中携带待交换数据的文件标识或外存地址,所述外存地址为所述待交换数据在外存中的存储地址,所述外存为所述外存为除所述内存之外的存储设备;
通过所述第三CPU根据所述待交换数据的文件标识或外存地址,从所述外存中读取所述待交换数据,将所述待交换数据存储至所述第三CPU对应的存储区域,向所述第二CPU发送数据交换响应,所述数据交换响应中携带所述待交换数据的内存地址。
可选的,所述内存为DDR SDRAM。
在本发明实施例中,该电子设备中可以包括多个CPU和一个内存,且在通过第一CPU访问该内存结束时,通过主CPU确定即将访问该内存的第二CPU,从而将第一CPU与该内存之间的连接切换为第二CPU与该内存之间的连接,并通过第二CPU访问该内存,确保了在不影响第一CPU访问该内存进行数据处理的基础上,也能够通过第二CPU访问该内存进行数据处理,也即是,该电子设备能够确保多个CPU能够通过同一内存进行数据处理,由于不需要为每个CPU单独设置一个内存,所以降低了该电子设备的成本。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其它的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了根据本发明一个实施例的一种电子设备的结构示意图;
图2示出了根据本发明一个实施例的另一种电子设备的结构示意图;
图3示出了根据本发明一个实施例的又一种电子设备的结构示意图;
图4示出了根据本发明一个实施例的一种处理数据的方法流程图;
图5示出了根据本发明一个实施例的另一种处理数据的方法流程图;
图6示出了根据本发明一个实施例的一种电子设备的框图。
具体实施方式
下面将参照附图更详细地描述本发明示例性实施例。虽然附图中显示了本发明示例性实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本发明,并且能够将本发明的范围完整的传达给本领域的技术人员。
实施例一
参照图1,示出了根据本发明一个实施例的一种电子设备的结构示意图。该电子设备可以包括多个CPU01和内存02,任一CPU与内存02之间能够实现通信连接。
多个CPU01中的任一CPU可以独立或者与其它CPU协同执行该电子设备中程序或指令,对数据进行算术运算、逻辑运算或者其它处理,或者,该CPU还可以具有其它与实现该电子设备的功能有关的能力。
内存02为能够与任一CPU进行直接数据交互的存储器,该内存O2能够用存储该多个CPU01正在运行中的程序或数据。该内存02可以是SRAM(Static RAM,静态随机存储器)或DRAM(Dynamic RAM,动态随机存储器)。
其中,该多个CPU01中可以包括一个主CPU(比如图1中的CPU_1即可以是一个主CPU),该主CPU能够与其它任一CPU之间实现通信连接,以对其它CPU的运行进行管理,确保在同一时间段内,只有一个CPU能够在该内存02中进行数据处理,从而实现该多个CPU01能够共享一个内存02,避免了分别为每个CPU设置一个内存而导致的该电子设备成本提高的问题。
优选的,参见图2,该电子设备还包括多通道控制器03,该多通道控制器03可以与该内存02以及每个CPU实现通信连接,且该多通道控制器03与主CPU存在选通控制通道,该多通道控制器03能够通过选通控制通道接收主CPU的相关指令或请求,连接任一CPU与该内存02之间的连接或者将任一CPU与该内存02之间的连接断开,从而实现对当前访问内存02的CPU进行控制。
优选的,参见图3,该电子设备还包括多个闪存(Flash)04,每个闪存分别对应一个CPU,该闪存中可以存储该CPU中能够运行的程序(比如操作系统等)。
实施例二
参照图4,示出了根据本发明一个实施例的一种处理数据的方法流程图,所述方法可以应用于图1-3任一所述的电子设备中,所述设备包括多个CPU和一个内存,所述多个CPU中包括一个用于对其它CPU访问所述内存进行管理的主CPU,所述方法包括:
步骤401,当通过第一CPU访问所述内存结束时,通过所述主CPU确定所述多个CPU中即将访问所述内存的第二CPU。
为了避免为该电子设备中的多个CPU分别设置内存而导致的该电子设备成本升高的问题,可以通过主CPU来对当前访问内存的CPU进行管理,包括在第一CPU访问该内存结束时,确定即将访问该内存的第二CPU,也即是,通过一个内存即能够保证多个CPU正常运行,从而减低该电子设备的成本。
其中,第一CPU或第二CPU均可以是该多个CPU中的任一CPU。
优选的,该主CPU可以是该多个CPU中的任一CPU,比如该主CPU可以是第一CPU或者第二CPU,也即是,该主CPU既能够对访问内存的CPU进行管理,也能够访问该内存从而进行数据处理,提高该主CPU的利用率。由于不需要特定针对对访问内存的CPU进行管理设置一个CPU,所以能够降低该电子设备的成本。当然,在实际应用中,为了提高该主CPU对访问内存的CPU进行管理的效率和可靠性,进而提高处理数据的效率和可靠性,该主CPU可以是针对对访问内存的CPU进行管理所特制的CPU,或者可以是只用于对访问内存的CPU进行管理的CPU。
优选的,可以在当通过第一CPU访问该内存结束时,通过该主CPU确定该多个CPU中即将访问该内存的第二CPU之前,在该多个CPU中指定一个CPU作为该主CPU,比如,一种可能的实现方式为,由该电子设备的生产商或者安装在该电子设备中的操作系统的生产商在该多个CPU中确定该主CPU。
优选的,为了提高对访问该内存的CPU进行管理的可靠性,进而提高处理数据的可靠性,该电子设备可以在当通过第一CPU访问该内存结束时,通过该主CPU确定该多个CPU中即将访问该内存的第二CPU之前,确定该多个CPU访问该内存的预设访问顺序,(比如由该电子设备生产商或者安装在该电子设备中的操作系统的生产商预置得到)。之后,该电子设备可以在确定第一CPU访问该内存结束时,根据该预设访问顺序,确定即将访问该内存的第二CPU。
例如,该电子设备包括5个CPU,分别为CPU_1、CPU_2、CPU_3、CPU_4、CPU_5,预设访问顺序为CPU_1、CPU_2、CPU_3、CPU_5、CPU_4,。当该通过CPU_3访问该内存结束时,根据该预设访问顺序,即可确定即将访问该内存的为CPU_5。
步骤402,通过所述主CPU断开所述第一CPU与所述内存的连接,建立所述第二CPU与所述内存的连接。
由前述可知,该主CPU能够用于对访问该内存的CPU进行管理,所以可以通过该主CPU断开第一CPU与该内存的连接并建立第二CPU与该内存的连接,从而对访问该内存的CPU进行切换。
其中,可以通过该主CPU向第一CPU发送断开指示信号,通过该主CPU向第二CPU发送连接指示信号,当第一CPU接收到该断开指示信号时,断开第一CPU与该内存之间的连接,当第二CPU接收到该连接指示信号时,建立与该内存的间接。
优选的,该断开指示信号用于指示CPU断开该CPU与内存之间的连接,该连接指示信号用于指示CPU建立与该内存之间的连接,该断开指示信号可以是“0”,该连接指示信号可以是“1”。当然,在实际应用中,该断开指示信号或该连接指示信号还可以是其它形式的信号。
步骤403,通过所述第二CPU访问所述内存,以在所述内存中进行数据处理。
由于已经对访问该内存的CPU进行了切换,从而建立了第二CPU与该内存之间的连接,因此,能够通过第二CPU访问该内存,以在该内存中处理数据。
在本发明实施例中,该电子设备中可以包括多个CPU和一个内存,且在通过第一CPU访问该内存结束时,通过主CPU确定即将访问该内存的第二CPU,从而将第一CPU与该内存之间的连接切换为第二CPU与该内存之间的连接,并通过第二CPU访问该内存,确保了在不影响第一CPU访问该内存进行数据处理的基础上,也能够通过第二CPU访问该内存进行数据处理,也即是,该电子设备能够确保多个CPU能够通过同一内存进行数据处理,由于不需要为每个CPU单独设置一个内存,所以降低了该电子设备的成本。
实施例三
参照图5,示出了根据本发明一个实施例的一种处理数据的方法流程图,所述方法可以应用于图1-3任一所述的电子设备中,所述设备包括多个CPU和一个内存,所述多个CPU中包括一个用于对其它CPU访问所述内存进行管理的主CPU,所述方法包括:
步骤501,配置所述多个CPU和所述内存。
为了确保一个内存也能够满足该多个CPU处理数据的需求,进而确保该电子设备的正常运行,可以对该电子设备中的该多个CPU和该内存进行配置。
优选的,接收主CPU选择指令,在所述多个CPU中,将所述主CPU选择指令所选择的CPU确定为所述主CPU。
为了提高对访问该内存的CPU进行管理的灵活性,进而提高处理数据的灵活性,可以在接收到主CPU选择指令时,在该多个CPU中选择一个CPU作为该主CPU,也即是,由用户确定对访问该内存的CPU进行管理的主CPU。
其中,该主CPU选择指令用于指示在该多个CPU中选择一个CPU作为该主CPU,该主CPU选择指令可以由用户通过执行预设操作触发,该预设操作可以是点击操作、触摸操作等操作,当然,在实际应用中,该预设操作还可以是其它操作。
优选的,当接收到内存分配指令时,在所述内存中划分得到多个存储区域,所述多个存储区域中任意两个存储区域互不重叠,且所述多个存储区域的数目与所述多个CPU的数目相同,将所述多个存储区域分别分配给所述多个CPU,使所述多个CPU中的每个CPU均存在对应的存储区域。
由于该多个CPU均能够访问该内存,而每个CPU均能够对该内存中的数据进行处理,如果需要该CPU处理的数据被其它访问该内存的CPU改变时,可能会导致该CPU故障或者其它安全隐患,因此,避免上述问题,提高该电子设备的可靠性,可以将在该内存中,为每个CPU划分一个与该CPU对应的存储区域,从而确保该CPU只能够对该内存中与该CPU对应的存储区域的数据进行改变。
其中,该内存分配指令用于指示为每个CPU分配一个对一个对应的存储区域,该内存分配指令可以由用户通过执行该预设操作触发。
优选的,在该内存中划分得到多个存储区域,可以是对该内存全部的存储区域进行划分,也可以是对该内存中的指定存储区域进行划分。
优选的,所述内存为DDR SDRAM。
由于DDR SDRAM通常能够提供更高的数据传输速率,因此,能够提高该多个CPU进行数据处理的效率,进而提高该电子设备的工作效率。
通过上述步骤501中的相关操作,已经对该电子设备中的该多个CPU和该内存进行了配置,因此,在接下来的步骤502-步骤504中,可以通过该多个CPU和该内存进行数据处理,从而使电子设备实现相应的功能。优选的,为了减少用户与该电子设备交互的过程,确保用户能够便捷的使用该电子设备,提高用户体验,上述步骤501中配置该多个CPU和该内存的相关操作可以在该电子设备初始化或者初次上电运行时执行,当然,为了进一步提高配置该多个CPU和该内存的灵活性,满足该电子设备在不同场景下对处理数据的需要,上述步骤501中配置该多个CPU和该内存的相关操作也可以在该电子设备运行的任一时刻进行,从而对该多个CPU和该内存的配置情况进行更新或修改。
步骤502,当通过第一CPU访问所述内存结束时,通过所述主CPU确定所述多个CPU中即将访问所述内存的第二CPU。
其中,当通过第一CPU访问所述内存结束时,通过所述主CPU确定所述多个CPU中即将访问所述内存的第二CPU的方式,可以参见实施例二步骤401中的相关描述,此处不再一一赘述。
优选的,所述当通过第一CPU访问所述内存结束时,通过所述主CPU确定所述多个CPU中即将访问所述内存的第二CPU之前,包括:建立所述第一CPU与所述内存之间的连接,并统计所述第一CPU与所述内存之间的连接时长,当所述连接时长达到预设时长时,确定通过第一CPU访问所述内存结束。
其中,该预设时长可以在当所述连接时长达到预设时长时,确定通过第一CPU访问所述内存结束之前确定,比如一种可能的实现方式为,可以在步骤501中配置该多个CPU和该内存时,接收指定的时长作为该预设时长。
优选的,可以设置多个预设时长,且每个预设时长对应一个CPU,从而在确定该CPU的连接时长达到与该CPU对应的预设时长时,确定该CPU访问该内存结束,也即是,能够分别对每个CPU访问该内存的时长进行控制,提高了管理访问该内存的CPU的灵活性,进而提高通过该多个CPU处理数据的灵活性。
步骤503,通过所述主CPU断开所述第一CPU与所述内存的连接,建立所述第二CPU与所述内存的连接。
优选的,所述电子设备还包括多通道控制器,相应的,所述通过所述主CPU断开所述第一CPU与所述内存的连接,建立所述第二CPU与所述内存的连接,包括,通过所述主CPU向所述多个CPU中除所述第二CPU之外的其它CPU发送断开指示信号,并向所述第二CPU发送连接指示信号,通过所述主CPU向所述多通道控制器发送连接控制信号,以指示所述多通道控制器断开所述第一CPU与所述内存的连接,建立所述第二CPU与所述内存的连接,所述连接控制信号用于指示所述多通道控制器对当前访问所述内存的CPU进行切换。
其中,该断开指示信号和该连接指示信号可以参见实施例二步骤402中的相关描述,此处不再一一赘述。
为了提高对当前访问该CPU进行切换的可靠性和准确性,该电子设备可以包括多通道控制器,在通过该主CPU向第一CPU发送该断开指示信号、向第二CPU发送连接指示信号的基础上,向该多通道控制器发送连接控制信号,从而使该多通道控制器将第一CPU与该内存之间的连接,切换为第二CPU与该内存之间的连接。
优选的,该连接控制信号可以携带第二CPU的标识,当该多通道控制接收到该连接控制信号时,可以将第一CPU与该内存之间的连接断开,并建立第二CPU与该内存之间的连接。或者,在另一种可能的实现方式中,为了进一步提高对访问该内存的CPU进行切换的可靠性,该连接控制信号中携带第一CPU的标识、第二CPU的标识,当该多通道控制器接收到该连接控制信号时,检测当前连接该内存的CPU的标识,如果检测到的标识与第一CPU的标识相同,则断开第一CPU与该内存之间的连接,并建立第二CPU与该内存之间的连接,如果检测到的标识与第一CPU的标识不同,则不执行断开第一CPU与该内存之间的连接,并第二CPU与该内存之间的连接的操作,发出提示信号,以提示切换连接该内存的CPU时出现故障。
其中,该提示信号可以是声音、文字、震动等形式的信号,当然,在实际应用中,该提示信号还可以是其它形式的信号。
步骤504,通过所述第二CPU访问所述内存,以在所述内存中进行数据处理。
优选的,所述通过所述第二CPU访问所述内存,包括:通过所述第二CPU修改所述内存中与所述第二CPU对应的存储区域所存储的数据。
为了避免需要其它CPU处理的数据被第二CPU修改导致其它CPU故障或其它安全隐患,第二CPU可以修改与第二CPU对应的存储区域所存储的数据。
优选的,所述通过所述第二CPU访问所述内存,包括:通过所述第二CPU读取所述内存中任一存储区域所存储的数据。
由于读取该内存中的数据并不会造成该数据改变,也即是,不会导致需要其它CPU处理的数据被第二CPU修改导致其它CPU故障或带来其它安全隐患,因此,第二CPU可以读取该内存中内任一区域中的数据。
优选的,所述通过所述第二CPU读取所述内存中任一存储区域所存储的数据,包括:从第三CPU获取待交换数据的内存地址,所述第三CPU为所述多个CPU中的任一CPU,所述内存地址为所述待交换数据在所述第三CPU对应的存储区域中的存储地址,通过所述第二CPU根据所述待交换数据的内存地址,从所述第三CPU对应的存储区域中读取所述待交换数据。
其中,第三CPU可以从外存中读取任意的数据,并将读取的数据存储至于第三CPU对应的存储区域,将存储后的数据作为待交换数据,并将该待交换数据的内存地址发送给第二CPU,第二CPU即可以通过该待交换数据的内存地址,从该内存与第三CPU对应的存储区域读取该待交换数据。
优选的,该外存可以是硬盘、软盘、光盘、U盘等。
优选的,所述从第三CPU获取待交换数据的内存地址,包括:通过所述第二CPU向所述第三CPU发送数据交换请求,所述数据交换请求中携带待交换数据的文件标识或外存地址,所述外存地址为所述待交换数据在外存中的存储地址,所述外存为所述外存为除所述内存之外的存储设备,通过所述第三CPU根据所述待交换数据的文件标识或外存地址,从所述外存中读取所述待交换数据,将所述待交换数据存储至所述第三CPU对应的存储区域,向所述第二CPU发送数据交换响应,所述数据交换响应中携带所述待交换数据的内存地址。
其中,文件标识用于在该电子设备中唯一标识一个文件,文件标识可以是文件的ID(Identification,身份证)或者哈希值等,当然,在实际应用中,文件标识还可以是其它能够在该电子设备中唯一标识一个文件的标识。
优选的,如果该数据交换请求中携带待交换数据的文件标识,第三CPU可以根据该待交换数据的文件标识,从文件标识与外存地址之间的对应关系中获取该待交换数据的外存地址。其中,任一CPU可以在将该待交换数据存储至该外存并确定存储该待交换数据的外存地址,从而将该待交换数据的文件标识和外存地址,存储至文件标识与外存地址之间的对应关系中。
例如,第二CPU向第三CPU发送数据交换请求1,该数据交换请求1中携带待交换数据1的外存地址ADD1,第三CPU在接收到该数据交换请求1时,根据ADD1,从硬盘中读取该待交换数据1,并将该待交换数据1存储至内存与第三CPU对应的的存储区域,且该交换数据1在该内存中的存储地址为add1,第三CPU向第二CPU发送数据交换响应1,该数据交换响应1中携带add1,第二CPU在接收到该数据交换响应1时,根据add1,从内存内存与第三CPU对应的的存储区域读取该待交换数据1。
第二CPU可以在建立与该内存连接之后,向第三CPU发送该数据交换请求,第三CPU可以在接收到该数据交换请求之后首次建立与该内存的连接后,根据该数据交换请求,将该待交换数据从该外存读取至该内存中,并向第二CPU发送该数据交换响应,第二CPU可以在接收到该数据交换响应之后首次建立与该内存的连接后,根据该待交换数据的内存地址,从该内存中与第三CPU对应的存储区域读取该待交换数据。
在通过第二CPU访问该内存进行数据处理的过程中,由于第二CPU需要将程序或者文件从外存读取至该内存中来处理,但第二CPU只能够修改该内存中与第二CPU对应的存储区域中的数据,当第二CPU所要从该外存读取至该内存中的程序或文件较大时,可能该内存中与第二CPU对应的存储区域难以存放该程序或文件,所以,为了确保处理数据的可靠性,可以通过第三CPU将该程序或文件中的部分数据作为待交换数据从该外存读取至该内存中与第三CPU对应的存储区域,在通过第二CPU从与第三CPU对应的存储区域中读取该待交换数据,从而完成数据处理。当然,在实际应用中,还可以因为其它原因,来通过第三CPU将待交换数据存储至该内存中与第三CPU对应的存储区域,再通过第二CPU从该内存中与第三CPU对应的存储区域读取该待交换数据。也即是,本发明实施例能够确保CPU在只能修改该内存中部分存储区域(即与该CPU对应的存储区域)所存储的数据的情况下,也能够正常地在该内存中进行数据处理,从而确保了该电子设备中的该多个CPU能够通过一个内存来处理数据,在保证该电子设备功能可靠性的基础上节省了该电子设备的成本。且由于是在同一内存中交换该待交换数据,节省了多内存之间进行数据交换时的交互过程,提高了交换该待交换数据的效率,进而提高了处理数据的效率。
在本发明实施例中,首先,该电子设备中可以包括多个CPU和一个内存,且在通过第一CPU访问该内存结束时,通过主CPU确定即将访问该内存的第二CPU,从而将第一CPU与该内存之间的连接切换为第二CPU与该内存之间的连接,并通过第二CPU访问该内存,确保了在不影响第一CPU访问该内存进行数据处理的基础上,也能够通过第二CPU访问该内存进行数据处理,也即是,该电子设备能够确保多个CPU能够通过同一内存进行数据处理,由于不需要为每个CPU单独设置一个内存,所以降低了该电子设备的成本。其次,该电子设备还可以包括多通道控制器,从而通过该多通道控制器准确地对连接该内存的CPU进行切换,提高了对访问该内存的CPU进行管理的可靠性,从而提高了处理数据的可靠性。另外,可以通过第二CPU读取该内存中任一存储区域中的数据,也可以修改该内存与第二CPU对应的存储区域中的数据,从而避免了该内存中需要其它CPU处理的数据被第二CPU更改而带来的故障或其它安全隐患,即进一步确保了多个CPU能够通过一个内存进行数据处理,提高了进行数据处理的可靠性。另外,可以通过从第三CPU获取待交换数据的内存地址,从而根据该内存地址,从该内存与第三CPU对应的存储区域中读取该待交换数据,由于是在同一内存中进行数据交换,所以节省了多CPU之间进行数据交换时的交互过程,提高了交换该待交换数据的效率,进而在节省该电子设备成本的基础上提高了处理数据的效率。
实施例四
参照图6,示出了根据本发明一个实施例的一种电子设备的框图,所述电子设备包括多个CPU和一个内存,所述多个CPU中包括一个用于对其它CPU访问所述内存进行管理的主CPU,所述设备包括:
第一确定模块601,用于当通过第一CPU访问所述内存结束时,通过所述主CPU确定所述多个CPU中即将访问所述内存的第二CPU;
第一连接模块602,用于通过所述主CPU断开所述第一CPU与所述内存的连接,建立所述第二CPU与所述内存的连接;
处理模块603,用于通过所述第二CPU访问所述内存,以在所述内存中进行数据处理。
可选的,所述设备还包括多通道控制器;
相应的,所述连接模块包括:
发送子模块,用于通过所述主CPU向所述多个CPU中除所述第二CPU之外的其它CPU发送断开指示信号,并向所述第二CPU发送连接指示信号;
连接子模块,用于通过所述主CPU向所述多通道控制器发送连接控制信号,以指示所述多通道控制器断开所述第一CPU与所述内存的连接,建立所述第二CPU与所述内存的连接,所述连接控制信号用于指示所述多通道控制器对当前访问所述内存的CPU进行切换。
可选的,所述设备还包括:
选择模块,用于接收主CPU选择指令,在所述多个CPU中,将所述主CPU选择指令所选择的CPU确定为所述主CPU。
可选的,所述设备还包括:
第二连接模块,用于建立所述第一CPU与所述内存之间的连接,并统计所述第一CPU与所述内存之间的连接时长;
第二确定模块,用于当所述连接时长达到预设时长时,确定通过第一CPU访问所述内存结束。
可选的,所述处理模块包括:
修改子模块,用于通过所述第二CPU修改所述内存中与所述第二CPU对应的存储区域所存储的数据。
可选的,所述设备还包括:
划分模块,用于当接收到内存分配指令时,在所述内存中划分得到多个存储区域,所述多个存储区域中任意两个存储区域互不重叠,且所述多个存储区域的数目与所述多个CPU的数目相同;
分配模块,用于将所述多个存储区域分别分配给所述多个CPU,使所述多个CPU中的每个CPU均存在对应的存储区域。
可选的,所述处理模块包括:
读取子模块,用于通过所述第二CPU读取所述内存中任一存储区域所存储的数据。
可选的,所述读取子模块还用于:
从第三CPU获取待交换数据的内存地址,所述第三CPU为所述多个CPU中的任一CPU,所述内存地址为所述待交换数据在所述第三CPU对应的存储区域中的存储地址;
通过所述第二CPU根据所述待交换数据的内存地址,从所述第三CPU对应的存储区域中读取所述待交换数据。
可选的,所述读取子模块还用于:
通过所述第二CPU向所述第三CPU发送数据交换请求,所述数据交换请求中携带待交换数据的文件标识或外存地址,所述外存地址为所述待交换数据在外存中的存储地址,所述外存为所述外存为除所述内存之外的存储设备;
通过所述第三CPU根据所述待交换数据的文件标识或外存地址,从所述外存中读取所述待交换数据,将所述待交换数据存储至所述第三CPU对应的存储区域,向所述第二CPU发送数据交换响应,所述数据交换响应中携带所述待交换数据的内存地址。
可选的,所述内存为DDR SDRAM。
在本发明实施例中,该电子设备中可以包括多个CPU和一个内存,且在通过第一CPU访问该内存结束时,通过主CPU确定即将访问该内存的第二CPU,从而将第一CPU与该内存之间的连接切换为第二CPU与该内存之间的连接,并通过第二CPU访问该内存,确保了在不影响第一CPU访问该内存进行数据处理的基础上,也能够通过第二CPU访问该内存进行数据处理,也即是,该电子设备能够确保多个CPU能够通过同一内存进行数据处理,由于不需要为每个CPU单独设置一个内存,所以降低了该电子设备的成本。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本发明并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的处理数据的方法及电子设备中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其它形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。