一种多核处理器的核间数据交互方法与流程

文档序号:13472238阅读:520来源:国知局
一种多核处理器的核间数据交互方法与流程

本发明涉及多核处理器技术领域,更为具体来说,本发明涉及一种多核处理器的核间数据交互方法。



背景技术:

目前,在各种电器和各类控制系统中,使用多核处理器已非常普遍。但是,当核间数据交互方法不当时,会造成数据传输错误及数据处理速度降低等问题。现有的解决方法是:开发成熟的操作系统,比如android、ios、windowsphone等。但是,成熟的操作系统会大量的占用系统资源,而且在研制、优化操作系统的过程中会产生高额的研发费用。

因此,在不依靠成熟的操作系统前提下,提供一种高可靠性、高传输速率的核间数据交互方法成为了本领域技术人员亟待解决的技术问题和始终研究的重点。



技术实现要素:

为解决多核处理器的核间数据易传输错误、数据处理速度低以及依靠成熟的操作系统会受到系统资源和费用的制约等问题,本发明创新地提出了一种具有高速率、高可靠性数据传递功能的核间数据交互方法,从而有效突破核间数据易传输错误的瓶颈,有无操作系统该方法均适用,且易于实现。

为实现上述技术目的,本发明公开了一种多核处理器的核间数据交互方法,该方法包括如下步骤:

环形通讯结构设置:多个核依次连接且尾核与首核相连,以形成环形通讯结构,且环形通讯结构中的每一个核分别与共享数据区连接;

启动核间通讯中断:环形通讯结构中的一个核启动核间通讯中断,并将所述核间通讯中断发送至环形通讯结构中的下一个核;

响应核间通讯中断:下一个核响应所述核间通讯中断,并在中断响应期间通过核内的缓冲器对共享数据区进行读和/或写操作;

循环核间通讯中断:在读和/或写操作结束后,沿环形通讯结构向下下一个核发送核间通讯中断;然后沿环形通讯结构循环进行上述响应中断、数据读和/或写、发送中断过程,在循环过程中,各核之间通过共享数据区完成核间数据交互。

本发明创新地设计了一种基于环形通讯结构的核间数据交互方法,该方法通过按顺序循环进行的中断发送、中断响应、数据读写过程而有效地完成了多核处理器的核间数据交互,从而有效地避免了现有技术对成熟的操作系统的依赖,突破核间数据易传输错误的瓶颈,达到核间数据高速率、高可靠性传递的技术目的。

进一步地,每一个核分别设有ⅰ类缓冲器、ⅱ类缓冲器、ⅲ类缓冲器中的至少一种;

ⅰ类缓冲器的作用是周期性的将低优先级中断或主流程中需要发送给其它核的数据通过ⅰ类缓冲器写入共享数据区;具有所述ⅰ类缓冲器的核收到低优先级中断或主流程发送的数据指令时,对所述ⅰ类缓冲器进行周期循环写操作,用于写操作的数据来源于该低优先级中断或主流程;具有所述ⅰ类缓冲器的核收到启动核间通讯中断的定时中断或响应核间通讯中断的高优先级中断时,对所述ⅰ类缓冲器进行周期循环读操作,并将读取的数据写入到共享数据区;

ⅱ类缓冲器的作用是随机性的无周期性的将低优先级中断或主流程中需要发送给其它核的数据通过ⅱ类缓冲器写入共享数据区;具有所述ⅱ类缓冲器的核收到低优先级中断或主流程发送的数据指令时,对所述ⅱ类缓冲器进行随机写操作,用于写操作的数据来源于该低优先级中断或主流程;具有所述ⅱ类缓冲器的核收到启动核间通讯中断的定时中断或响应核间通讯中断的高优先级中断时,对所述ⅱ类缓冲器进行周期循环读操作,并将读取的数据写入到共享数据区;

ⅲ类缓冲器的作用是低优先级中断或主流程通过该缓冲器接收其它核传输的数据;具有所述ⅲ类缓冲器的核收到启动核间通讯中断的定时中断或响应核间通讯中断的高优先级中断时,将共享数据区中其它核传输的数据写入该缓冲器,用于写操作的数据来源于共享数据区;具有所述ⅲ类缓冲器的核在响应低优先级中断或主流程时,对该缓冲器进行随机或周期循环读操作,读取其它核传输的数据。

基于上述改进的技术方案,本发明创新地为各个核设计了多种缓冲器,从而有效提高了数据读写过程的可靠性和稳定性,避免了可能出现的读写混乱的情况发生。

进一步地,在所述ⅰ类缓冲器中设置ⅰ类写数据标识、ⅰ类数据寄存器单元及ⅰ类数据寄存器备份单元;

对所述ⅰ类缓冲器进行周期循环写操作时,ⅰ类写数据标识置位,再将需要写入的数据写入ⅰ类数据寄存器单元,ⅰ类写数据标识清零,再将需要写入的数据写入ⅰ类数据寄存器备份单元;

对所述ⅰ类缓冲器进行周期循环读操作时,判断ⅰ类写数据标识状态:如果ⅰ类写数据标识清零,则读取ⅰ类数据寄存器单元中数据;如果ⅰ类写数据标识状态置位,则读取ⅰ类数据寄存器备份单元中数据。

进一步地,在所述ⅱ类缓冲器中设置ⅱ类写数据标识、ⅱ类数据寄存器单元及新数据标识;

对所述ⅱ类缓冲器进行随机写操作时,ⅱ类写数据标识置位、新数据标识置位,将需要写入的数据写入ⅱ类数据寄存器单元,ⅱ类写数据标识清零;

对所述ⅱ类缓冲器进行周期循环读操作时,判断ⅱ类写数据标识状态和新数据标识状态,如果满足ⅱ类写数据标识清零且新数据标识置位条件,则读取ⅱ类数据寄存器单元中数据,新数据标识清零。

进一步地,在所述ⅲ类缓冲器中设置重写标识和ⅲ类数据寄存器单元;

对所述ⅲ类缓冲器进行周期循环写操作时,重写标识置位,将需要写入的数据写入ⅲ类数据寄存器单元;

对所述ⅲ类缓冲器进行随机或周期循环读操作时,重写标识清零,从ⅲ类数据寄存器单元中读取数据。

基于上述改进的技术方案,本发明实现在多个处理器间对各类优先级工作流程进行快速高效的数据交互。通过设置专门的缓冲器,可保证读写操作的顺利进行、避免出现读写混乱的问题。

进一步地,在启动核间通讯中断步骤中,环形通讯结构中的一个核定时启动核间通讯中断;在各个核中启动核间通讯中断的定时中断及响应核间通讯的中断,均为各个核中复位中断外的优先级最高的中断。

进一步地,核间通讯中断定时的时长为1ms。

进一步地,所述多核处理器的核数为四核。

进一步地,所述处理器为dsp处理器。

进一步地,所述核间通讯中断为ipc中断。

本发明的有益效果为:本发明创新地提出了一种具有高速率、高可靠性数据传递功能的核间数据交互方法,能够保证在任何时刻对共享数据区的读写操作只会是一个核,从而本发明有效地突破核间数据易传输错误的瓶颈,有无操作系统该方法均适用,且易于实现。

附图说明

图1为多核处理器的核间数据交互方法流程示意图。

图2为四核处理器的核间数据交互状态示意图。

具体实施方式

下面结合说明书附图对本发明多核处理器的核间数据交互方法进行详细的解释和说明。

如图1、2所示,本发明具体公开了一种多核处理器的核间数据交互方法,该方法可有效地提高数据传递的速率和可靠性,适用于多核处理器间的数据交互,该方法具体包括如下步骤。

环形通讯结构设置:多个核依次连接且尾核与首核相连,以形成环形通讯结构,且环形通讯结构中的每一个核分别与共享数据区连接。应理解,“尾核”和“首核”是为了描述清楚环形通讯结构的构建过程而用于区分不同核,而不是对多核处理器中某个核的限制,在具体实施的构建过程中,“首核”可认为是第一个被注意到的核,而“尾核”是最后一个被注意到的核,且在构建最后一步需要将“尾核”与“首核”相连,满足二者能够进行中断通讯的需要。

启动核间通讯中断:环形通讯结构中的一个核启动核间通讯中断,本实施例中,核间通讯中断为ipc中断,环形通讯结构中的一个核定时启动核间通讯中断,而且,本发明在各个核中启动核间通讯中断的定时中断及响应核间通讯的中断,均为各个核中复位中断外的优先级最高的中断,本实施例中,核间通讯中断定时的时长可以为1ms,当然,在本发明的启示下,具体的定时时长可根据需要进行合理设置,并将核间通讯中断发送至环形通讯结构中的下一个核。应当理解,“环形通讯结构中的一个核”是指多个核中的任一个核,在具体实施时,可根据实际需要而指定环形通讯结构中的一个核;“下一个核”则是指在环形通讯结构中处于当前核下一个的核,如图2所示。

响应核间通讯中断:下一个核响应核间通讯中断,并在中断响应期间通过核内的缓冲器对共享数据区进行读和/或写操作。如果核内具有多类缓冲器,则可通过各类缓冲器轮询读写共享数据区。本实施例中,给出了三类缓冲器,具体说明如下。

具体来说,在对共享数据区进行读操作和/或写操作过程,即对核进行写操作和/或读操作。本发明中,每一个核分别设有ⅰ类缓冲器、ⅱ类缓冲器、ⅲ类缓冲器中的至少一种;本实施例以核的角度对读写操作进行详细说明,并对各类缓冲器进行了约束定义。

ⅰ类缓冲器的作用是周期性的将低优先级中断或主流程中需要发送给其它核的数据通过ⅰ类缓冲器写入共享数据区;具有所述ⅰ类缓冲器的核收到低优先级中断或主流程发送的数据指令时,对所述ⅰ类缓冲器进行周期循环写操作,用于写操作的数据来源于该低优先级中断或主流程;具有所述ⅰ类缓冲器的核收到启动核间通讯中断的定时中断或响应核间通讯中断的高优先级中断时,对所述ⅰ类缓冲器进行周期循环读操作,并将读取的数据写入到共享数据区。

更为具体地,在ⅰ类缓冲器中设置ⅰ类写数据标识、ⅰ类数据寄存器单元及ⅰ类数据寄存器备份单元。

对ⅰ类缓冲器进行周期循环写操作时,ⅰ类写数据标识置位,再将需要写入的数据写入ⅰ类数据寄存器单元,ⅰ类写数据标识清零,再将需要写入的数据写入ⅰ类数据寄存器备份单元。

对ⅰ类缓冲器进行周期循环读操作时,判断ⅰ类写数据标识状态:如果ⅰ类写数据标识清零,则读取ⅰ类数据寄存器单元中数据;如果ⅰ类写数据标识状态置位,则读取ⅰ类数据寄存器备份单元中数据。

ⅱ类缓冲器的作用是随机性的无周期性的将低优先级中断或主流程中需要发送给其它核的数据通过ⅱ类缓冲器写入共享数据区;具有所述ⅱ类缓冲器的核收到低优先级中断或主流程发送的数据指令时,对所述ⅱ类缓冲器进行随机写操作,用于写操作的数据来源于该低优先级中断或主流程;具有所述ⅱ类缓冲器的核收到启动核间通讯中断的定时中断或响应核间通讯中断的高优先级中断时,对所述ⅱ类缓冲器进行周期循环读操作,并将读取的数据写入到共享数据区。

更为具体地,在ⅱ类缓冲器中设置ⅱ类写数据标识、ⅱ类数据寄存器单元及新数据标识。

对ⅱ类缓冲器进行随机写操作时,ⅱ类写数据标识置位、新数据标识置位,将需要写入的数据写入ⅱ类数据寄存器单元,ⅱ类写数据标识清零。

对ⅱ类缓冲器进行周期循环读操作时,判断ⅱ类写数据标识状态和新数据标识状态,如果满足ⅱ类写数据标识清零且新数据标识置位条件,则读取ⅱ类数据寄存器单元中数据,新数据标识清零;如果不满足上述条件,则取消读操作、向下一步执行。

ⅲ类缓冲器的作用是低优先级中断或主流程通过该缓冲器接收其它核传输的数据;具有所述ⅲ类缓冲器的核收到启动核间通讯中断的定时中断或响应核间通讯中断的高优先级中断时,将共享数据区中其它核传输的数据写入该缓冲器,用于写操作的数据来源于共享数据区;具有所述ⅲ类缓冲器的核在响应低优先级中断或主流程时,对该缓冲器进行随机或周期循环读操作,读取其它核传输的数据。

更为具体地,在ⅲ类缓冲器中设置重写标识和ⅲ类数据寄存器单元;

对ⅲ类缓冲器进行周期循环写操作时,重写标识置位,将需要写入的数据写入ⅲ类数据寄存器单元。

对ⅲ类缓冲器进行随机或周期循环读操作时,重写标识清零,从ⅲ类数据寄存器单元中读取数据。

循环核间通讯中断:在读和/或写操作结束后,沿环形通讯结构向下下一个核发送核间通讯中断;然后沿环形通讯结构循环进行上述响应中断、数据读和/或写、发送中断过程,在循环过程中,各核之间通过共享数据区完成核间数据交互。本实施例中,如图2所示,多核处理器的核数为四核,且处理器为dsp处理器。

本发明以ti多核的dsp芯片tms320c6674作为控制器的激光捷联惯组设备中得到首次验证,如图2所示,tms320c6674有四个dsp处理器(core0~core3),各个处理器分别有独立的总线和数据存储空间,可以分别独立运行,四个dsp处理可共同访问一片共享数据区及共同的外设。本实施例具体实施过程如下:

(1)core1利用1ms定时器定,通过必要的缓冲器定时读写共享数据区,同时启动core1—>core2ipc中断;

(2)core2响应ipc中断,通过必要的缓冲器读写ipc共享数据区,启动core2—>core3ipc中断;

(3)core3响应ipc中断,通过必要的缓冲器读写ipc共享数据区,启动core3—>core0ipc中断;

(4)core0响应ipc中断,通过必要的缓冲器读写ipc共享数据区,启动core0—>core1ipc中断;

(5)core1响应ipc中断,对核间通讯进行必要的事件记录标记。

这种核间通讯方式,有效解决了激光捷联惯组设备研发中遇到的核间交互数据异常、快速数据处理过慢以及内存资源消耗过大等一系列问题,实验验证这种通讯方式可靠且高速。

此外,术语“ⅰ类”、“ⅱ类”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“ⅰ类”、“ⅱ类”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。

在本发明中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”、“固定”等术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或成一体;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通或两个元件的相互作用关系,除非另有明确的限定。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。

在本说明书的描述中,参考术语“本实施例”、“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明实质内容上所作的任何修改、等同替换和简单改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1