一种处理器接口装置以及处理器数据处理方法与流程

文档序号:16781445发布日期:2019-02-01 19:10阅读:162来源:国知局
一种处理器接口装置以及处理器数据处理方法与流程

本发明涉及电子技术领域,具体涉及一种处理器接口装置以及处理器数据处理方法。



背景技术:

随着电子技术的不断发展,电子系统的功能日益完善提高,系统的复杂程度也日益增强。为了实现复杂的系统运算,进一步增强计算机系统的运算能力,在现有技术中,提出了具备多个处理器的计算机系统。

在传统的多处理器系统中,处理器间无法相互直接访问对方的数据空间,如果要实现相互间的内存映射,则往往需要通过在芯片之间增加双口ram来实现,但这种方式数据交换效率低、容易出现访问冲突、可靠性差。并且,当系统的处理器数量超过3个时,芯片间基于双口ram的数据交叉将变得更为复杂,增加了硬件的复杂度和产品的成本。



技术实现要素:

本发明提供了一种处理器接口装置,所述装置包括:

操作独立缓冲区,其包含下发数据缓冲区以及上传数据缓冲区;

下发数据读取控制单元,其配置为将所述下发数据缓冲区的数据读出并生成下发数据流;

上传数据读取控制单元,其配置为在收到上传数据流后将流操作转换为对所述上传数据缓冲区的连续地址操作,从而将数据映射到所述上传数据缓冲区;

接口驱动单元,其包含用于接入处理器总线的接口,配置为将与处理器数据总线的数据交互操作转换为独立的读操作与写操作以读取所述上传数据缓冲区以及向所述下发数据缓冲区写入数据。

在一实施例中,所述下发数据读取控制单元配置为周期性的启动突发型数据搬运操作。

在一实施例中,所述操作独立缓冲区基于fpga的块存储器构造。

本发明还提出了一种处理器数据映射系统,所述系统包括:

多个处理器接口装置,每个所述处理器接口装置连接到一个处理器;

与所述处理器接口装置数目对应的多个数据读写模块,所述数据读写模块包含读取接口以及写入接口,其配置为从所述读取接口接收所述下发数据流并将其作为所述上传数据流从所述写入接口输出,其中:

不同的读取接口匹配不同的下发数据读取控制单元,在一个数据映射周期中,所述读取接口匹配固定的一个处理器接口装置的下发数据读取控制单元;

不同的写入接口匹配不同的上传数据读取控制单元,所述数据映射周期包含比所述处理器接口装置数目少一的多个读写操作周期,在一个数据映射周期中,所述写入接口配置为每经历一个读写操作周期就改变一次匹配的上传数据读取控制单元,在一个数据映射周期内,每个数据读写模块的写入接口依次匹配除该数据读写模块的读取接口匹配的处理器接口装置之外的所有处理器接口装置的上传数据读取控制单元。

在一实施例中,所述系统包括:

编号1~n的所述处理器接口装置,所述下发数据读取控制单元以及所述上传数据读取控制单元的编号与所述处理器接口装置一致(n为自然数);

编号1~n的数据读写模块,所述读取接口以及所述写入接口的编号与所述数据读写模块一致;

所述系统配置为:

一个数据映射周期包含编号1~(n-1)的读写操作周期;

编号1~n的读取接口分别匹配编号1~n的下发数据读取控制单元;

在第n个读写操作周期,编号1~n的写入接口分别匹配编号n+1,n+2,…n,1,…n(n为1~n中一数值)的上传数据读取控制单元。

本发明还提出了一种处理器数据处理方法,所述方法包括:

建立包含下发数据缓冲区以及上传数据缓冲区的操作独立缓冲区;

将与处理器数据总线的数据交互操作转换为独立的读操作与写操作以读取所述上传数据缓冲区以及向所述下发数据缓冲区写入数据;

将所述下发数据缓冲区的数据读出以生成下发数据流;

在收到上传数据流后将流操作转换为对所述上传数据缓冲区的连续地址操作,从而将数据映射到所述上传数据缓冲区。

在一实施例中,周期性的启动突发型数据搬运操作以将所述下发数据缓冲区的数据读出。

在一实施例中,利用fpga的块存储器构造所述操作独立缓冲区。

本发明还提出了一种处理器数据映射方法,所述方法包括:

将一个数据映射周期划分成比处理器数目少一的多个读写操作周期;

建立与所述处理器数目对应的多个读写线程,每个读写线程包含一个读状态机以及一个写状态机;

在一个读写操作周期中,所述读写线程利用读状态机读取所述下发数据流并将其作为所述上传数据流从所述写状态机输出,其中:

不同的读状态机匹配不同的处理器,在一个数据映射周期中,所述读状态机匹配固定的一个所述处理器;

不同的写状态机匹配不同的处理器,在一个数据映射周期中,所述写状态机每经历一个读写操作周期就改变一次匹配的处理器,每个所述写状态机依次匹配除该读写线程的读状态机匹配的处理器之外的所有处理器。

在一实施例中,所述方法包括:

针对编号1~n的n个处理器,建立编号1~n的读写线程,所述读状态机以及所述写状态机的编号与所述读写线程一致;

在一个数据映射周期内划分编号1~(n-1)的读写操作周期(n为自然数);

在一个数据映射周期中,编号1~n的读状态机分别对应读取编号1~n的处理器的下发数据流;

在第n个读写操作周期,编号1~n的写状态机分别向编号n+1,n+2,…n,1,…n(n为1~n中一数值)的处理器写入上传数据流。

根据本发明的方法,可以在进行处理器间数据相互访问时简化数据访问流程,降低数据访问的复杂程度。

本发明的其它特征或优点将在随后的说明书中阐述。并且,本发明的部分特征或优点将通过说明书而变得显而易见,或者通过实施本发明而被了解。本发明的目的和部分优点可通过在说明书、权利要求书以及附图中所特别指出的步骤来实现或获得。

附图说明

附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例共同用于解释本发明,并不构成对本发明的限制。在附图中:

图1是根据本发明一实施例的处理器数据处理流程图;

图2是根据本发明一实施例的多处理器间数据映射关系示意图;

图3是根据本发明一实施例的接口装置结构框图;

图4是根据本发明一实施例的接口装置结构示意图;

图5是根据本发明一实施例的4处理器数据映射系统结构框图。

具体实施方式

以下将结合附图及实施例来详细说明本发明的实施方式,借此本发明的实施人员可以充分理解本发明如何应用技术手段来解决技术问题,并达成技术效果的实现过程并依据上述实现过程具体实施本发明。需要说明的是,只要不构成冲突,本发明中的各个实施例以及各实施例中的各个特征可以相互结合,所形成的技术方案均在本发明的保护范围之内。

随着电子技术的不断发展,电子系统的功能日益完善提高,系统的复杂程度也日益增强。为了实现复杂的系统运算,进一步增强计算机系统的运算能力,在现有技术中,提出了具备多个处理器的计算机系统。

在传统的多处理器系统中,处理器间无法相互直接访问对方的数据空间,如果要实现相互间的内存映射,则往往需要通过在芯片之间增加双口ram来实现,但这种方式数据交换效率低、容易出现访问冲突、可靠性差。并且,当系统的处理器数量超过3个时,芯片间基于双口ram的数据交叉将变得更为复杂,增加了硬件的复杂度和产品的成本。

针对上述现有技术中存在的问题,本发明首先提出了一种处理器数据处理方法。

具体的,在一实施例中,方法包括:

建立包含下发数据缓冲区以及上传数据缓冲区的操作独立缓冲区;

将与处理器数据总线的数据交互操作转换为独立的读操作与写操作以读取上传数据缓冲区以及向下发数据缓冲区写入数据;

将下发数据缓冲区的数据读出以生成下发数据流;

在收到上传数据流后将流操作转换为对上传数据缓冲区的连续地址操作,从而将数据映射到上传数据缓冲区。

根据本发明的方法,可以将处理器数据操作的读操作与写操作分离,从而在进行处理器间数据相互访问时简化数据交叉访问流程,降低数据访问的复杂程度。

接下来通过流程图描述本发明的方法的执行步骤。附图的流程图中示出的步骤可以在包含诸如一组计算机可执行指令的计算机系统中执行。虽然在流程图中示出了各步骤的逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

如图1所示,针对一处理器,构造下发数据缓冲区以及上传数据缓冲区。数据处理流程如下:

与处理器数据总线进行数据交互操作(s110);

将与处理器数据总线的数据交互操作转换为独立的读操作(s111)与写操作(s113);

针对读操作,读取上传数据缓冲区(s112);

针对写操作,向下发数据缓冲区写入数据(s114);

同时,接收上传数据流(s120),在收到上传数据流后将流操作转换为对上传数据缓冲区的连续地址操作(s121),将数据写入上传数据缓冲区(s122),从而将数据映射到上传数据缓冲区,以便在步骤s112执行读操作时读取数据。

同时,读取下发数据缓冲区(s140),将下发数据缓冲区的数据读出以生成并输出下发数据流(s141)。

进一步的,在一实施例中,在步骤s140中,周期性的启动突发型数据搬运操作以将下发数据缓冲区的数据读出。

进一步的,考虑到在很多应用场景中,多处理器系统基于现场可编程门阵列(field-programmablegatearray,fpga)构造。为了简化存储器资源,在一实施例中,利用fpga的块存储器(blockram)构造操作独立缓冲区。

进一步的,基于本发明的处理器数据处理方法,本发明还提出了一种多处理器间的数据映射方法。根据本发明的方法,可以在一个数据映射周期中,在多个处理器之间实现数据的相互映射。

具体的,在一实施例中:

将一个数据映射周期内划分成比处理器数目少一的多个读写操作周期;

建立与处理器数目对应的多个读写线程,每个读写线程包含一个读状态机以及一个写状态机;

在一个读写操作周期中,读写线程利用读状态机读取下发数据流并将其作为上传数据流从写状态机输出,其中:

不同的读状态机匹配不同的处理器,在一个数据映射周期中,每个读状态机匹配固定的一个处理器;

不同的写状态机匹配不同的处理器,在一个数据映射周期中,写状态机每经历一个读写操作周期就改变一次匹配的处理器,每个写状态机依次匹配除该读写线程的读状态机匹配的处理器之外的所有处理器。

这样,针对任一线程,在一个数据映射周期中,读状态机始终读取一个处理器的数据,而写状态机则不断转换数据写入目标,当写状态机经历所有的读写操作周期后,其就相除自身线程所读取的处理器以外的所有处理器写入了数据。对于该读写线程而言,其完成将一个处理器的数据映射到其他所有处理器的任务。

由于每个处理器均对应一个读写线程,因此当所有读写线程都完成一个数据映射周期时,就完成所有处理器间的数据映射。进一步的,多个读写线程可以并行执行,因此,在一个数据映射周期中,就可以完成所有处理期间的数据映射。

具体的,如图2所示,在一实施例中,对于n个处理器的系统,设计n个线程(6),其中每个线程都包括一个独立的读任务状态机(2)和一个独立的写任务状态机(4),对cpu1-cpun的缓冲操作可以按照cpu1缓冲-cpun缓冲-cpu1缓冲的闭环处理任务。在映射操作过程中,线程中读或写任务中的一个在整个操作周期中只操作某个固定的cpu数据缓冲区(1),另一个任务则从固定任务相邻的下一个cpu缓冲区开始按周期依次操作相邻缓冲区(3),当完成所有n-1个周期(5)的操作后,n个处理器便完成了相互间所有芯片的映射数据交换。

即:

针对编号1~n的n个处理器,建立编号1~n的读写线程,读状态机以及写状态机的编号与所述读写线程一致;

在一个数据映射周期内划分编号1~(n-1)的读写操作周期(n为自然数);

在一个数据映射周期中,编号1~n的读状态机分别对应读取编号1~n的处理器的下发数据流;

在第n个读写操作周期,编号1~n的写状态机分别向编号n+1,n+2,…n,1,…n(n为1~n中一数值)的处理器写入上传数据流。

进一步的,基于本发明的处理器数据处理方法,本发明还提出了一种处理器接口装置。具体的,如图3所示,在一实施例中,处理器接口装置包括:

操作独立缓冲区310,其包含下发数据缓冲区311以及上传数据缓冲区312;

下发数据读取控制单元332,其配置为将下发数据缓冲区312的数据读出并生成下发数据流;

上传数据读取控制单元331,其配置为在收到上传数据流后将流操作转换为对上传数据缓冲区311的连续地址操作,从而将数据映射到上传数据缓冲区;

接口驱动单元320,其包含用于接入处理器总线的接口,配置为将与处理器数据总线的数据交互操作转换为独立的读操作与写操作以读取上传数据缓冲区311以及向下发数据缓冲区312写入数据。

进一步的,在一实施例中,下发数据读取控制单元配置为周期性的启动突发型数据搬运操作。

进一步的,在一实施例中,操作独立缓冲区基于fpga的块存储器构造。

具体的,如图4所示,接口驱动单元(2)将来自处理器数据总线(1)的数据操作转换为独立的读操作以及写操作从而分别实现与下发数据缓冲区(3)和上传数据缓冲区(4)的数据交互。下发数据读取控制单元(5)周期性的启动突发型数据搬运操作,将下发数据缓冲区(3)的数据读出并产生如时序图(9)所示时序的下发数据流(6)。上传数据读取控制单元(7)则在收到如(9)所示时序的上传数据流(8)后将流操作转换为对上传数据缓冲区(4)的连续地址操作,从而将数据映射到处理器在fpga内的缓冲区。

进一步的,基于本发明提出的处理器接口装置,本发明还提出了一种处理器数据映射系统。在一实施例中,系统包括:

多个处理器接口装置,每个处理器接口装置连接到一个处理器;

与处理器接口装置数目对应的多个数据读写模块,数据读写模块包含读取接口以及写入接口,其配置为从读取接口接收下发数据流并将其作为上传数据流从写入接口输出,其中:

不同的读取接口匹配不同的下发数据读取控制单元,在一个数据映射周期中,读取接口匹配固定的一个处理器接口装置的下发数据读取控制单元;

不同的写入接口匹配不同的上传数据读取控制单元,数据映射周期包含比所述处理器接口装置数目少一的多个读写操作周期,在一个数据映射周期中,写入接口配置为每经历一个读写操作周期就改变一次匹配的上传数据读取控制单元,在一个数据映射周期内,每个数据读写模块的写入接口依次匹配除该数据读写模块的读取接口匹配的处理器接口装置之外的所有处理器接口装置的上传数据读取控制单元。

具体的,在一实施例中,系统包括:

编号1~n的处理器接口装置,下发数据读取控制单元以及上传数据读取控制单元的编号与处理器接口装置一致(n为自然数);

编号1~n的数据读写模块,读取接口以及写入接口的编号与数据读写模块一致;

系统配置为:

一个数据映射周期包含编号1~(n-1)的读写操作周期;

编号1~n的读取接口分别匹配编号1~n的下发数据读取控制单元;

在第n个读写操作周期,编号1~n的写入接口分别匹配编号n+1,n+2,…n,1,…n(n为1~n中一数值)的上传数据读取控制单元。

以一个针对4处理器的系统为例,如图5所示,系统包含接口装置511、512、513以及514,其分别连接到处理器501、502、503以及504的处理器总线上。

数据读写模块521的读取接口固定读取接口装置511的下发数据读取控制单元输出的数据流;数据读写模块522的读取接口固定读取接口装置512的下发数据读取控制单元输出的数据流;数据读写模块523的读取接口固定读取接口装置513的下发数据读取控制单元输出的数据流;数据读写模块524的读取接口固定读取接口装置514的下发数据读取控制单元输出的数据流。

在第一个读写操作周期:

处理器501的数据通过接口装置511的下发数据读取控制单元输出,由数据读写模块521的读取接口读取,由数据读写模块521的写入接口输出,由接口装置512的上传数据读取控制单元接收,最终映射到处理器502;

处理器502的数据通过接口装置512的下发数据读取控制单元输出,由数据读写模块522的读取接口读取,由数据读写模块522的写入接口输出,由接口装置513的上传数据读取控制单元接收,最终映射到处理器503;

处理器503的数据通过接口装置513的下发数据读取控制单元输出,由数据读写模块523的读取接口读取,由数据读写模块523的写入接口输出,由接口装置514的上传数据读取控制单元接收,最终映射到处理器504;

处理器504的数据通过接口装置514的下发数据读取控制单元输出,由数据读写模块524的读取接口读取,由数据读写模块524的写入接口输出,由接口装置511的上传数据读取控制单元接收,最终映射到处理器501。

在第二个读写操作周期:

处理器501的数据通过接口装置511的下发数据读取控制单元输出,由数据读写模块521的读取接口读取,由数据读写模块521的写入接口输出,由接口装置513的上传数据读取控制单元接收,最终映射到处理器503;

处理器502的数据通过接口装置512的下发数据读取控制单元输出,由数据读写模块522的读取接口读取,由数据读写模块522的写入接口输出,由接口装置514的上传数据读取控制单元接收,最终映射到处理器504;

处理器503的数据通过接口装置513的下发数据读取控制单元输出,由数据读写模块523的读取接口读取,由数据读写模块523的写入接口输出,由接口装置511的上传数据读取控制单元接收,最终映射到处理器501;

处理器504的数据通过接口装置514的下发数据读取控制单元输出,由数据读写模块524的读取接口读取,由数据读写模块524的写入接口输出,由接口装置512的上传数据读取控制单元接收,最终映射到处理器502。

在第三个读写操作周期:

处理器501的数据通过接口装置511的下发数据读取控制单元输出,由数据读写模块521的读取接口读取,由数据读写模块521的写入接口输出,由接口装置514的上传数据读取控制单元接收,最终映射到处理器504;

处理器502的数据通过接口装置512的下发数据读取控制单元输出,由数据读写模块522的读取接口读取,由数据读写模块522的写入接口输出,由接口装置511的上传数据读取控制单元接收,最终映射到处理器501;

处理器503的数据通过接口装置513的下发数据读取控制单元输出,由数据读写模块523的读取接口读取,由数据读写模块523的写入接口输出,由接口装置512的上传数据读取控制单元接收,最终映射到处理器502;

处理器504的数据通过接口装置514的下发数据读取控制单元输出,由数据读写模块524的读取接口读取,由数据读写模块524的写入接口输出,由接口装置513的上传数据读取控制单元接收,最终映射到处理器503。

这样,经过3个读写操作周期后,处理器501、502、503以及504就完成了相互间的数据映射。

虽然本发明所公开的实施方式如上,但所述的内容只是为了便于理解本发明而采用的实施方式,并非用以限定本发明。本发明所述的方法还可有其他多种实施例。在不背离本发明实质的情况下,熟悉本领域的技术人员当可根据本发明做出各种相应的改变或变形,但这些相应的改变或变形都应属于本发明的权利要求的保护范围。

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