专利名称:传输数据的装置、系统及方法
技术领域:
本发明涉及计算机和通信领域,并且具体地,涉及传输数据的装置、系统及方法。
背景技术:
目前,无论是大型机还是x86架构的个人电脑(Personal Computer, PC),都开始发展多核架构。例如,如今的PC领域中两核和四核已经成为通常配置。此外,随着多媒体音视频应用的快速发展、海量数据处理需求的增长以及处理器技术的长足发展,嵌入式微处理器同样在朝着两核、四核以及更多核的方向发展。可见,从最高端的服务器处理器到对功耗非常敏感的嵌入式处理器,所有的主流处理器架构都走上了多核化的道路。多核之间的数据处理过程不可能完全独立,需要协作处理,而多核之间协作就需要互相传输大量的数据。目前常用的核间通信方法是由发送处理器核或接收处理器核自身来负责数据的搬移以及中断等操作,这样就造成了各核在核间通信上的消耗随着传输数据 量的增加在不断增长,导致部分业务无法正常处理,严重降低了处理器核的业务处理能力。
发明内容
本发明实施例提供传输数据的装置、系统及方法,能够降低处理器核在核间通信过程中的消耗,提高处理器核的业务处理能力。第一方面,提供了一种传输数据的装置,包括数据搬移模块,用于读取第一处理器核的第一发送缓冲器的配置信息,在该配置信息指示该第一发送缓冲器中存有需要传输至第二处理器核的接收缓冲器的数据时,控制直接存储器存取DMA模块将该数据从该第一发送缓冲器传输至该接收缓冲器,并设置中断信息;中断管理模块,用于读取该中断信息,在该中断信息指示需要向该第二处理器核触发中断时,控制多核中断控制器向该第二处理器核触发中断,以便该第二处理器核对该接收缓冲器中的该数据进行处理。结合第一方面,在第一种可能的实现方式中,该装置还包括配置寄存器,用于存储该配置信息和该中断信息;该数据搬移模块具体用于从该配置寄存器读取该配置信息,并将该中断信息存入该配置寄存器;该中断管理模块具体用于从该配置寄存器读取该中断信肩、O结合第一方面的第一种可能的实现方式,在第二种可能的实现方式中,该装置还包括优先级仲裁模块;该配置寄存器还用于存储优先级信息,该优先级信息包括每个发送缓冲器的优先级级别;该优先级仲裁模块,用于根据该优先级信息,从存有待传输数据的多个发送缓冲器中选取该第一发送缓冲器,并向该数据搬移模块发送用于指示该第一发送缓冲器的指示信息,其中该第一发送缓冲器在该存有待传输数据的多个发送缓冲器中优先级最高;该数据搬移模块具体用于根据该指示信息,从该配置寄存器中读取该第一发送缓冲器的配置信息。结合第一方面或第一方面的第一种可能的实现方式或第一方面的第二种可能的实现方式,在第三种可能的实现方式中,该中断管理模块具体用于在该中断信息指示该接收缓冲器中的数据量大于或等于数据量阈值时,控制该多核中断控制器向该第二处理器核触发中断;或者,该中断管理模块具体用于在该中断信息指示该中断时间阈值的时长结束时,控制该多核中断控制器向该第二处理器核触发中断;或者,该中断管理模块具体用于在该中断信息指示该数据已被从该第一发送缓冲器传输至该接收缓冲器时,控制该多核中断控制器向该第二处理器核触发中断。结合第一方面或第一方面的第一种可能的实现方式或第一方面的第二种可能的实现方式或第一方面的第三种可能的实现方式,在第四种可能的实现方式中,该装置还包括该DMA模块。结合第一方面或第一方面的第一种可能的实现方式或第一方面的第二种可能的实现方式或第一方面的第三种可能的实现方式或第一方面的第四种可能的实现方式,在第五种可能的实现方式中,该装置还包括编码模块、处理缓冲器和循环冗余校验CRC生成模块;该数据搬移模块具体用于控制该DMA模块将该数据从该第一发送缓冲器传输至该处理缓冲器;该编码模块,用于对该数据进行编码,并将编码后的该数据传输至该CRC生成模 块;该CRC生成模块,用于对编码后的该数据进行CRC校验,并将CRC校验后的该数据存储在该处理缓冲器中;该数据搬移模块具体用于控制该DMA模块将CRC校验后的该数据从该处理缓冲器中传输至该接收缓冲器。结合第一方面或第一方面的第一种可能的实现方式或第一方面的第二种可能的实现方式或第一方面的第三种可能的实现方式或第一方面的第四种可能的实现方式或第一方面的第五种可能的实现方式,在第六种可能的实现方式中,该装置还包括完整性检测模块,用于在所述数据搬移模块控制所述DMA模块将所述数据从所述第一发送缓冲器传输至所述接收缓冲器之前,对该数据进行完整性检测。第二方面,提供了一种传输数据的系统,包括至少两个处理器核,多核中断控制器,以及传输数据的装置,其中,该至少两个处理器核中的第一处理器核被配置有至少一个发送缓冲器,该至少两个处理器核中的第二处理器核被配置有至少一个接收缓冲器;该至少两个处理器核、该至少一个发送缓冲器、该至少一个接收缓冲器、该多核中断控制器以及该装置之间通过总线相连接;该第一处理器核用于在该至少一个发送缓冲器中的第一发送缓冲器中写入需要传输至该至少一个接收缓冲器中的第一接收缓冲器的数据;该装置,用于在该第一发送缓冲器的配置信息指示该第一发送缓冲器中存有需要传输至该第一接收缓冲器的数据时,控制直接存储器存取DMA模块将该数据从该第一发送缓冲器传输至该第一接收缓冲器,并设置中断信息;该装置,还用于在该中断信息指示需要向该第二处理器核触发中断时,控制多核中断控制器向该第二处理器核触发中断;该第二处理器核,用于响应该装置所触发的中断,并对该第一接收缓冲器中的该数据进行处理。结合第二方面,在第一种可能的实现方式中,该系统还包括直接存储器存取DMA模块,通过总线与该至少两个处理器核、该至少一个发送缓冲器、该至少一个接收缓冲器、该多核中断控制器以及该装置相连接。结合第二方面或第二方面的第一种可能的实现方式,在第二种可能的实现方式中,该系统还包括串行化接口,该系统通过该串行化接口与其它系统相连接;该装置,还用于将多个该发送缓冲器中存有的待传输数据进行编码以获取编码后的数据,并将该编码后的数据传输至至少一个接收缓冲器中的一个接收缓冲器以获取汇聚后的数据;该串行化接口用于读取该汇聚后的数据,并将该汇聚后的数据传输至该其它系统。第三方面,提供了一种传输数据的方法,包括读取第一处理器核的第一发送缓冲器的配置信息,在该配置信息指示该第一发送缓冲器中存有需要传输至第二处理器核的接收缓冲器的数据时,控制直接存储器存取DMA模块将该数据从该第一发送缓冲器传输至该接收缓冲器,并设置中断信息;读取该中断信息,并在该中断信息指示需要向该第二处理器核触发中断时,控制多核中断控制器向该第二处理器核触发中断,以便该第二处理器核对该接收缓冲器中的该数据进行处理。结合第三方面,在第一种可能的实现方式中,根据优先级信息,从存有待传输数据的多个发送缓冲器中选取该第一发送缓冲器,其中该第一发送缓冲器在该存有待传输数据的多个发送缓冲器中优先级最高,其中该优先级信息包括每个发送缓冲器的优先级级别。结合第三方面或第三方面的第一种可能的实现方式,在第二种可能的实现方式中,在该中断信息指示该接收缓冲器中的数据量大于或等于数据量阈值时,控制该多核中 断控制器向该第二处理器核触发中断;或者,在该中断信息指示该中断时间阈值的时长结束时,控制该多核中断控制器向该第二处理器核触发中断;或者,在该中断信息指示该数据已被从该第一发送缓冲器传输至该接收缓冲器时,控制该多核中断控制器向该第二处理器核触发中断。结合第三方面或第三方面的第一种可能的实现方式或第三方面的第二种可能的实现方式,在第三种可能的实现方式中,控制该DMA模块将该数据从该第一发送缓冲器传输至处理缓冲器;对该数据进行编码;对编码后的该数据进行CRC校验,并将CRC校验后的该数据存储在该处理缓冲器中;控制该DMA模块将CRC校验后的该数据从该处理缓冲器中传输至该接收缓冲器。结合第三方面或第三方面的第一种可能的实现方式或第三方面的第二种可能的实现方式或第三方面的第三种可能的实现方式,在第三方面的第四种可能的实现方式中,在控制DMA模块将数据从第一发送缓冲器传输至接收缓冲器之前,对该数据进行完整性检测。本发明实施例中,通过数据搬移模块控制DMA模块将数据从第一处理器核的第一发送缓冲器传输至第二处理器核的接收缓冲器,以及中断管理模块控制多核中断控制器向第二处理器核触发中断,使得在核间通信过程中第一处理器核和第二处理器核均无需执行传输数据和中断触发的相关操作,从而能够降低处理器核在核间通信过程中的消耗,提高处理器核的业务处理能力,并能够提高多处理器核之间的数据传输速率。
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍,显而易见地,下面所描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图I是根据本发明实施例的传输数据的装置的示意框图。图2是根据本发明另一实施例的传输数据的装置的示意框图。图3是根据本发明实施例的传输数据的系统的示意框图。
图4是根据本发明实施例的系统间传输数据的一个例子的示意性流程图。图5是根据本发明实施例的传输数据的方法的示意性流程图。
具体实施例方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都应属于本发明保护的范围。图I是根据本发明实施例的传输数据的装置的示意框图。图I的装置100包括数据搬移模块101和中断管理模块102。数据搬移模块101用于读取第一处理器核的第一发送缓冲器的配置信息,在配置信息指示第一发送缓冲器中存有需要传输至第二处理器核的接收缓冲器的数据时,控制直接存储器存取(Direct Memory Access, DMA)模块将该数据从第一发送缓冲器传输至接收缓冲器,并设置中断信息。中断管理模块102用于读取中断信息,在中断信息指示需要向第二处理器核触发中断时,控制多核中断控制器向第二处理器核触发中断,以便第二处理器核对接收缓冲器中的数据进行处理。这里的中断信息是多核系统的中断机制中的信号,当第二处理器核没有收到该中断信号前,可以执行其他操作;当第二处理器核接收到这个中断信号时,可以开始对接收缓冲器中的数据进行处理。本发明实施例中,通过数据搬移模块控制DMA模块将数据从第一处理器核的第一发送缓冲器传输至第二处理器核的接收缓冲器,以及中断管理模块控制多核中断控制器向第二处理器核触发中断,使得在核间通信过程中第一处理器核和第二处理器核均无需执行传输数据和中断触发的相关操作,从而能够降低处理器核在核间通信过程中的消耗,提高处理器核的业务处理能力,并能够提高多处理器核之间的数据传输速率。此外,由于在核间通信过程中第一处理器核和第二处理器核均无需执行传输数据和中断触发的相关操作,因此具有巨大的吞吐量,能够保证多处理器核之间数据的实时传输,从而能够保证业务的实时处理。可选地,作为一个实施例,如图2所示,装置100还可包括配置寄存器103。配置寄存器103可以用于存储配置信息和中断信息。数据搬移模块101可从配置寄存器103读取配置信息,并将中断信息存入配置寄存器103。中断管理模块102可从配置寄存器103读取中断息。例如,配置寄存器103可以是一个,配置信息和中断信息都存储在该配置寄存器中。配置寄存器103可以包括两个寄存器,配置信息和中断信息可以分别存储在不同的寄存器中,本发明实施例对此不作限定。应注意,在多核系统的初始状态,各个处理器核可以对自己的发送缓冲器和/或接收缓冲器进行配置,从而生成发送缓冲器的配置信息和/或接收缓冲器的配置信息,并可以将这些配置信息存储在配置寄存器103中。此外,也可以从多个处理器核中确定一个主控处理器核,由主控处理器核对每个发送缓冲器和每个接收缓冲器进行配置,从而生成发送缓冲器的配置信息和接收缓冲器的配置信息。
应理解,上述配置寄存器103不仅可以用于存储第一处理器核的第一发送缓冲器的配置信息,还可以用于存储处理器核的所有发送缓冲器的配置信息,也可以用于存储处理器核的所有接收缓冲器的配置信息。配置寄存器103还可以包括多个寄存器,发送缓冲器的配置信息、接收缓冲器的配置信息和中断信息可以分别存储在不同的寄存器中。本发明实施例对此不作限定。发送缓冲器和接收缓冲器均可以是环形缓冲器。发送缓冲器的配置信息可以包括发送缓冲器的相关属性,接收缓冲器的配置信息可以包括接收缓冲器的相关属性。发送缓冲器可具有如下属性起始物理地址、字节长度、读指针、写指针、接收缓冲器标识(Identity,ID)以及使能标记。接收缓冲器ID用于标识该发送缓冲器中数据的传输目的地,此外该ID也暗含了该接收缓冲器所属的处理器核的ID。使能标记用于指示该发送缓冲器是否处于使能状态,处于使能状态的发送缓冲器中的数据才会被数据搬移模块进行处理。接收缓冲器可以具有如下属性起始物理地址、字节长度、读指针和写指针。 第一处理器核可以执行数据的写入操作,例如在第一发送缓冲器中写入需要传输的数据,更新第一发送缓冲器的写指针。 数据搬移模块101可以控制DMA模块执行数据在处理器核之间的传输过程,例如,数据搬移模块101可以在DMA模块中配置需要传输的数据的相关信息和使能DMA模块等,从而使得DMA模块执行在第一处理器核与第二处理器核之间的数据传输操作。此外,数据搬移模块101可以设置中断信息。另外,数据搬移模块101还可以更新第一发送缓冲器的读指针以及接收缓冲器的写指针。中断管理模块102可以根据中断信息控制多核中断控制器向接收数据的处理器核触发中断。多核中断控制器可以负责执行中断触发操作。例如多核中断控制器可以是ARM 的 IPCM 或 Mailbox 等。第二处理器核可以响应多核中断控制器的中断,对接收缓冲器中的数据进行处理,还可以对接收缓冲器的读指针进行更新。由此可见,通过数据搬移模块101负责执行数据传输操作以及中断管理模块102负责执行数据传输后的中断操作,使得第一处理器核和第二处理器核均无需执行传输数据和中断等相关操作,因此在核间通信过程中第一处理器核只需执行写入数据的操作,第二处理器核只需响应中断并执行数据处理操作,从而能够减少处理器核的CPU (CentralProcessing Unit,中央处理器)占用率,因此能够降低处理器核在核间通信过程中的消耗,提高处理器核的业务处理能力,并能够提高数据传输速率。为了克服现有技术中发送缓冲器中的数据的发送优先级受发送任务的优先级控制而不能根据数据本身的重要程度来控制,会造成重要的数据不能优先发送的缺陷。可选地,作为一个实施例,如图2所示,装置100还可包括优先级仲裁模块104。配置寄存器103还可用于存储优先级信息,该优先级信息可以包括每个发送缓冲器的优先级级别。优先级仲裁模块104可根据优先级信息,从存有待传输数据的全部发送缓冲器中选取第一发送缓冲器,并向数据搬移模块101发送用于指示第一发送缓冲器的指示信息,其中第一发送缓冲器在存有待传输数据的全部发送缓冲器中优先级最高。数据搬移模块101还可根据指示信息,从配置寄存器103中读取第一发送缓冲器的配置信息。
应理解,上述第一处理器核可以具有至少一个发送缓冲器,每个发送缓冲器的属性还可以包括优先级级别。第一处理器核需要向第二处理器核发送数据时,可以根据数据的重要程度,将数据写入第一处理器核的具有适当优先级级别的发送缓冲器中。配置寄存器103中可以存储优先级信息,优先级信息可以包括多核系统中每个发送缓冲器的优先级级别。优先级仲裁模块104可以根据优先级信息选择从存有待传输数据的多个发送缓冲器中选择优先级级别最高的发送缓冲器。此处,存有待传输数据的多个发送缓冲器可以是属于不同的处理器核。这样,数据搬移模块101可以根据优先级仲裁模块104的选择结果,控制DMA模块优先将该优先级级别最高的发送缓冲器中的数据进行传输。例如,上述第一发送缓冲器是存有待传输数据的全部发送缓冲器中优先级最高的,那么数据搬移模块101可以根据优先级仲裁模块104发送的指示信息,从配置寄存器103中读取第一发送缓冲器的配置信息,从而对第一发送缓冲器的数据进行优先处理。这样,能够保证重要的数据被优先传输。可选地,作为另一实施例,中断管理模块102可在中断信息指示接收缓冲器中的数据量大于或等于数据量阈值时,控制多核中断控制器向第二处理器核触发中断。或者,中断管理模块102可在中断信息指示中断时间阈值结束时,控制多核中断控制器向第二处理器核触发中断。或者,中断管理模块102可在中断信息指示数据已被从第一发送缓冲器传输至接收缓冲器时,控制多核中断控制器向第二处理器核触发中断。具体地,中断触发的方式可以是多种的。例如,可以采用设置中断时间阈值和数据量阈值相结合的中断触发方式。接收缓冲器的数据量可以根据接收缓冲器的配置信息进行确定,例如可以根据接收缓冲器的写指针和读指针确定。中断信息还可以包括定时器,对接收缓冲器中的数据的存放时长进行定时。因此,可以根据处理器核的实际性能合理设置中断时间阈值和数据量阈值,能够有效减小第二处理器核的CPU占用率。此外,也可以采用每传输一个数据包触发中断的方式。可选地,作为另一实施例,图2是根据本发明另一实施例的传输数据的装置的示意框图。如图2所示,装置100还可以包括DMA模块105。此外,DMA模块也可以是装置100外部的模块,本发明实施例及附图2对此不作限定。可选地,作为另一实施例,如图2所示,装置100还可以包括编码模块106、处理缓冲器107和循环冗余校验(Cyclic Redundancy Check, CRC)生成模块108。数据搬移模块101可控制DMA模块将数据从第一发送缓冲器传输至处理缓冲器。编码模块106可对该数据进行编码,将编码后的数据传输至CRC生成模块108。CRC生成模块108可对编码后的该数据进行CRC校验,并将CRC校验后的该数据存储在处理缓冲器107中。数据搬移模块101可控制DMA模块将CRC校验后的该数据从处理缓冲器107中传输至接收缓冲器。例如,编码模块106可以对数据进行高级数据链路控制(High-level Data LinkControl, HDLC)编码或其他类似的编码,从而能够对传输的数据包进行分界。可选地,作为另一实施例,装置100还可包括完整性检测模块109。完整性检测模块109可在数据搬移模块101控制DMA模块将数据从第一发送缓冲器传输至接收缓冲器之前,对该数据进行完整性检测。
本发明实施例中,通过数据搬移模块控制DMA模块将数据从第一处理器核的第一发送缓冲器传输至第二处理器核的接收缓冲器,以及中断管理模块控制多核中断控制器向第二处理器核触发中断,使得在核间通信过程中第一处理器核和第二处理器核均无需执行传输数据和中断触发的相关操作,从而能够降低处理器核在核间通信过程中的消耗,提高处理器核的业务处理能力,并能够提高多处理器核之间的数据传输速率。图3是根据本发明实施例的传输数据的系统的示意框图。图3的系统300包括至少两个处理器核,例如图3中的第一处理器核301和第二处理器核302,系统300还包括多核中断控制器303以及装置100。其中,第一处理器核301可以被配置有至少一个发送缓冲器,如图3所示的第一发送缓冲器304。第二处理器核302可以被配置有至少一个接收缓冲器,如图3所示的第一接收缓冲器305。应注意,为了描述的方便,在图3中示出了两个处理器核301和302,但本发明实施·例中,处理器核的数目还可以更多。还应注意,为了描述的方便,在图3中,第一处理器核301被配置有第一发送缓冲器304,第二处理器核302被配置有第一接收缓冲器305,但本发明实施例中,第一处理器核301被配置的发送缓冲器的数目和第二处理器核302被配置的接收缓冲器的数目还可以更多。第一处理器核301、第二处理器核302、第一发送缓冲器304、第一接收缓冲器305、多核中断控制器303以及装置100之间通过总线306相连接。第一处理器核301可以在第一发送缓冲器304中写入需要传输至第二处理器核302的第一接收缓冲器305的数据。装置100可在第一发送缓冲器304的配置信息指示第一发送缓冲器304中存有需要传输至第一接收缓冲器305的数据时,控制DMA模块将该数据从第一发送缓冲器304传输至第一接收缓冲器305,并设置中断信息。装置100还可在中断信息指示需要向第二处理器302触发中断时,控制多核中断控制器303向第二处理器核302触发中断。装置100具体可具有如图I或图2所示实施例的结构。第二处理器核302可响应装置100所触发的中断,并对第一接收缓冲器305中的数据进行处理。本发明实施例中,通过传输数据的装置将数据从第一处理器核的第一发送缓冲器传输至第二处理器核的第一接收缓冲器,并控制多核中断控制器向第二处理器核触发中断,使得在核间通信过程中第一处理器核和第二处理器核均无需执行传输数据和中断触发的相关操作,从而能够降低处理器核在核间通信过程中的消耗,提高处理器核的业务处理能力,并能够提高多处理器核之间的数据传输速率。此外,由于在核间通信过程中第一处理器核和第二处理器核均无需执行传输数据和中断触发的相关操作,因此具有巨大的吞吐量,能够保证多处理器核之间数据的实时传输,从而能够保证业务的实时处理。应理解,本发明实施例中,在系统的初始状态,可以从至少两个处理器核中确定一个主控处理器核,由主控处理器核对每个发送缓冲器和每个接收缓冲器进行配置,生成发送缓冲器的配置信息和接收缓冲器的配置信息。主控处理器核还可以对装置100进行配置。此外,也可以由各个处理器核可以对自己具有的发送缓冲器或接收缓冲器进行配置,生成发送缓冲器的配置信息或接收缓冲器的配置信息。还应理解,本发明实施例中,发送缓冲器和接收缓冲器可以位于不同类型的随机存取存储器(RAM, Random Access Memory)中,例如 SRAM (Static RAM,静态 RAM)或 DRAM(Dynamic RAM,动态 RAM)等。可选地,作为一个实施例,系统300还可包括DMA模块307。DMA模块307可以通过总线306与处理器核301、处理器核302、发送缓冲器304、接收缓冲器305、多核中断控制器303以及装置100相连接。例如,总线306可以是AXI或Crossbar等各种互联总线。此外,DMA模块307还可以内置于装置100中,本发明实施例对此不作限定。可选地,作为另一实施例,系统300还可包括串行化接口 308,系统300可通过串行化接口 308与其它系统相连接。装置100还可将多个发送缓冲器中存有的待传输数据进行 编码以获取编码后的数据,并将编码后的数据传输至至少一个接收缓冲器中的一个接收缓冲器以获取汇聚后的数据。串行化接口 308可读取汇聚后的数据,并将汇聚后的数据传输至其它系统。例如,装置100可对多个发送缓冲器中存有的待传输数据进行HDLC编码或其它类似的编码,获取编码后的数据。还可以将编码后的数据传输至一个接收缓冲器,获取汇聚后的数据。这样通过编码可以为每个发送缓冲器中的待传输的每个数据进行分界。并通过将编码后的数据传输至一个接收缓冲器中,能够实现数据包的串行汇聚。系统300可以将汇聚后的数据传输至其它系统,例如可以通过串行化接口,比如USB(Universal Serial Bus,通用串行总线)、以太网口或高速串口等,发送到其它系统中,从而能够实现系统之间的数据传输。一个典型的应用是将多个处理器核产生的诊断信息串行汇聚到一个处理器核,然后通过串行化接口传输到PC机上的后台工具中,以便集中分析处理。下面将结合具体的例子详细描述系统之间的数据传输过程。图4是根据本发明实施例的系统间传输数据的一个例子的示意性流程图。如图4所示,在系统300a中,假设有P个发送缓冲器,即发送缓冲器I至发送缓冲器P,其中P为正整数。每个发送缓冲器中存有待传输的数据。装置100可将发送缓冲器I至发送缓冲器P中待传输的数据进行编码后,获取编码后的数据,并将编码后的数据传输至接收缓冲器401中。系统300a可以通过串行化接口,比如USB(Universal Serial Bus,通用串行总线)、以太网口或高速串口等,发送到系统402中。系统402可对接收到的数据进行分析处理。这样,能够实现系统之间的数据传输。图5是根据本发明实施例的传输数据的方法的示意性流程图。图5的方法由传输数据的装置执行,例如由图I至图4中所示的装置100。510,装置100读取第一处理器核的第一发送缓冲器的配置信息,在该配置信息指示第一发送缓冲器中存有需要传输至第二处理器核的接收缓冲器的数据时,控制DMA模块将数据从第一发送缓冲器传输至接收缓冲器,并设置中断信息。520,装置100读取该中断信息,在该中断信息指示需要向第二处理器核触发中断时,控制多核中断控制器向第二处理器核触发中断,以便第二处理器核对接收缓冲器中的数据进行处理。
本发明实施例中,通过控制DMA模块将数据从第一处理器核的第一发送缓冲器传输至第二处理器核的接收缓冲器,以及控制多核中断控制器向第二处理器核触发中断,使得在核间通信过程中第一处理器核和第二处理器核均无需执行传输数据和中断触发的相关操作,从而能够降低处理器核在核间通信过程中的消耗,提高处理器核的业务处理能力,并能够提高多处理器核之间的数据传输速率。可选地,作为一个实施例,装置100可以根据优先级信息,从存有待传输数据的多个发送缓冲器中选取第一发送缓冲器,其中第一发送缓冲器在存有待传输数据的多个发送缓冲器中优先级最高,其中优先级信息包括每个发送缓冲器的优先级级别。可选地,作为另一实施例,装置100可以在中断信息指示接收缓冲器中的数据量大于或等于数据量阈值时,控制多核中断控制器向第二处理器核触发中断。或者,装置100可以在中断信息指示中断时间阈值的时长结束时,控制多核中断控制器向第二处理器核触发中断。或者,装置100可以在中断信息指示数据已被从第一发送缓冲器传输至接收缓冲器时,控制多核中断控制器向第二处理器核触发中断。
可选地,作为另一实施例,装置100可以控制DMA模块将数据从第一发送缓冲器传输至处理缓冲器;对该数据进行编码;对编码后的该数据进行CRC校验,并将CRC校验后的该数据存储在处理缓冲器中;控制DMA模块将CRC校验后的该数据从处理缓冲器中传输至接收缓冲器。可选地,作为另一实施例,装置100可以在控制DMA模块将数据从第一发送缓冲器传输至接收缓冲器之前,对该数据进行完整性检测。图5的方法的其它具体过程可以参照图I至图4中装置100的具体功能和操作,为了避免重复,此处不再赘述。本发明实施例中,通过控制DMA模块将数据从第一处理器核的第一发送缓冲器传输至第二处理器核的接收缓冲器,以及控制多核中断控制器向第二处理器核触发中断,使得在核间通信过程中第一处理器核和第二处理器核均无需执行传输数据和中断触发的相关操作,从而能够降低处理器核在核间通信过程中的消耗,提高处理器核的业务处理能力,并能够提高多处理器核之间的数据传输速率。本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。所述功能如果以软件功能单 元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、RAM、磁碟或者光盘等各种可以存储程序代码的介质。以上所述,仅为本发明的具体实施方式
,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
权利要求
1.一种传输数据的装置,其特征在于,包括 数据搬移模块,用于读取第一处理器核的第一发送缓冲器的配置信息,在所述配置信息指示所述第一发送缓冲器中存有需要传输至第二处理器核的接收缓冲器的数据时,控制直接存储器存取DMA模块将所述数据从所述第一发送缓冲器传输至所述接收缓冲器,并设置中断信息; 中断管理模块,用于读取所述中断信息,在所述中断信息指示需要向所述第二处理器核触发中断时,控制多核中断控制器向所述第二处理器核触发中断,以便所述第二处理器核对所述接收缓冲器中的所述数据进行处理。
2.根据权利要求I所述的装置,其特征在于,还包括配置寄存器,用于存储所述配置イM息和所述中断信息; 所述数据搬移模块具体用于从所述配置寄存器读取所述配置信息,并将所述中断信息存入所述配置寄存器; 所述中断管理模块具体用于从所述配置寄存器读取所述中断信息。
3.根据权利要求2所述的装置,其特征在于,还包括优先级仲裁模块, 所述配置寄存器还用于存储优先级信息,所述优先级信息包括每个发送缓冲器的优先级级别; 所述优先级仲裁模块,用于根据所述优先级信息,从存有待传输数据的多个发送缓冲器中选取所述第一发送缓冲器,并向所述数据搬移模块发送用于指示所述第一发送缓冲器的指示信息,其中所述第一发送缓冲器在所述存有待传输数据的多个发送缓冲器中优先级最闻; 所述数据搬移模块具体用于根据所述指示信息,从所述配置寄存器中读取所述第一发送缓冲器的配置信息。
4.根据权利要求I至3中任一项所述的装置,其特征在干, 所述中断管理模块具体用于在所述中断信息指示所述接收缓冲器中的数据量大于或等于数据量阈值时,控制所述多核中断控制器向所述第二处理器核触发中断;或者, 所述中断管理模块具体用于在所述中断信息指示中断时间阈值的时长结束时,控制所述多核中断控制器向所述第二处理器核触发中断;或者, 所述中断管理模块具体用于在所述中断信息指示所述数据已被从所述第一发送缓冲器传输至所述接收缓冲器时,控制所述多核中断控制器向所述第二处理器核触发中断。
5.根据权利要求I至4中任一项所述的装置,其特征在于,还包括所述DMA模块。
6.根据权利要求I至5中任一项所述的装置,其特征在于,还包括编码模块、处理缓冲器和循环冗余校验CRC生成模块; 所述数据搬移模块具体用于控制所述DMA模块将所述数据从所述第一发送缓冲器传输至所述处理缓冲器; 所述编码模块,用于对所述数据进行编码,并将编码后的所述数据传输至所述CRC生成模块; 所述CRC生成模块,用于对编码后的所述数据进行CRC校验,并将CRC校验后的所述数据存储在所述处理缓冲器中; 所述数据搬移模块具体用于控制所述DMA模块将CRC校验后的所述数据从所述处理缓冲器中传输至所述接收缓冲器。
7.根据权利要求I至6中任一项所述的装置,其特征在于,还包括 完整性检测模块,用于在所述数据搬移模块控制所述DMA模块将所述数据从所述第一发送缓冲器传输至所述接收缓冲器之前,对所述数据进行完整性检测。
8.一种传输数据的系统,其特征在于,包括 至少两个处理器核,多核中断控制器,以及传输数据的装置,其中, 所述至少两个处理器核中的第一处理器核被配置有至少一个发送缓冲器,所述至少两个处理器核中的第二处理器核被配置有至少一个接收缓冲器; 所述至少两个处理器核、所述至少一个发送缓冲器、所述至少一个接收缓冲器、所述多核中断控制器以及所述装置之间通过总线相连接; 所述第一处理器核用于在所述至少一个发送缓冲器中的第一发送缓冲器中写入需要传输至所述至少一个接收缓冲器中的第一接收缓冲器的数据; 所述装置,用于 在所述第一发送缓冲器的配置信息指示所述第一发送缓冲器中存有需要传输至所述第一接收缓冲器的数据时,控制直接存储器存取DMA模块将所述数据从所述第一发送缓冲器传输至所述第一接收缓冲器,并设置中断信息, 在所述中断信息指示需要向所述第二处理器核触发中断时,控制多核中断控制器向所述第二处理器核触发中断; 所述第二处理器核,用于响应所述装置所触发的中断,并对所述第一接收缓冲器中的所述数据进行处理。
9.根据权利要求8所述的系统,其特征在于,还包括 直接存储器存取DMA模块,通过总线与所述至少两个处理器核、所述至少一个发送缓冲器、所述至少一个接收缓冲器、所述多核中断控制器以及所述装置相连接。
10.根据权利要求8或9所述的系统,其特征在于,所述系统还包括串行化接口,所述系统通过所述串行化接口与其它系统相连接; 所述装置,还用于将多个所述发送缓冲器中存有的待传输数据进行编码以获取编码后的数据,并将所述编码后的数据传输至所述至少一个接收缓冲器中的一个接收缓冲器以获取汇聚后的数据; 所述串行化接口,用于读取所述汇聚后的数据,并将所述汇聚后的数据传输至所述其它系统。
11.一种传输数据的方法,其特征在于,包括 读取第一处理器核的第一发送缓冲器的配置信息,并在所述配置信息指示所述第一发送缓冲器中存有需要传输至第二处理器核的接收缓冲器的数据时,控制直接存储器存取DMA模块将所述数据从所述第一发送缓冲器传输至所述接收缓冲器,并设置中断信息; 读取所述中断信息,并在所述中断信息指示需要向所述第二处理器核触发中断时,控制多核中断控制器向所述第二处理器核触发中断,以便所述第二处理器核对所述接收缓冲器中的所述数据进行处理。
12.根据权利要求11所述的方法,其特征在于,还包括 根据优先级信息,从存有待传输数据的多个发送缓冲器中选取所述第一发送缓冲器,其中所述第一发送缓冲器在所述存有待传输数据的多个发送缓冲器中优先级最高,其中所述优先级信息包括每个发送缓冲器的优先级级别。
13.根据权利要求11或12所述的方法,其特征在于,所述在所述中断信息指示需要向所述第二处理器核触发中断时,控制多核中断控制器向所述第二处理器核触发中断,包括 在所述中断信息指示所述接收缓冲器中的数据量大于或等于数据量阈值时,控制所述多核中断控制器向所述第二处理器核触发中断;或者, 在所述中断信息指示中断时间阈值的时长结束时,控制所述多核中断控制器向所述第二处理器核触发中断;或者, 在所述中断信息指示所述数据已被从所述第一发送缓冲器传输至所述接收缓冲器时,控制所述多核中断控制器向所述第二处理器核触发中断。
14.根据权利要求11至13中任一项所述的方法,其特征在于,所述控制直接存储器存取DMA模块将所述数据从所述第一发送缓冲器传输至所述接收缓冲器,包括 控制所述DMA模块将所述数据从所述第一发送缓冲器传输至处理缓冲器; 对所述数据进行编码; 对编码后的所述数据进行CRC校验,并将CRC校验后的所述数据存储在所述处理缓冲器中; 控制所述DMA模块将CRC校验后的所述数据从所述处理缓冲器中传输至所述接收缓冲器。
15.根据权利要求11至14中任一项所述的方法,其特征在于,还包括 在所述控制DMA模块将所述数据从所述第一发送缓冲器传输至所述接收缓冲器之前,对所述数据进行完整性检测。
全文摘要
本发明提供了传输数据的装置、系统及方法。该装置包括数据搬移模块,用于读取第一处理器核的第一发送缓冲器的配置信息,在配置信息指示第一发送缓冲器中存有需要传输至第二处理器核的接收缓冲器的数据时,控制DMA模块将该数据从第一发送缓冲器传输至接收缓冲器,并设置中断信息;中断管理模块,用于读取中断信息,在中断信息指示需要向第二处理器核触发中断时,控制多核中断控制器向第二处理器核触发中断,以便第二处理器核对接收缓冲器中的数据进行处理。本发明实施例能够降低处理器核在核间通信过程中的消耗,提高处理器核的业务处理能力。
文档编号G06F13/28GK102866971SQ20121030928
公开日2013年1月9日 申请日期2012年8月28日 优先权日2012年8月28日
发明者孙学全 申请人:华为技术有限公司