基带芯片及其数据处理方法
技术领域
本发明涉及通信领域,尤其涉及一种基带芯片及其数据处理方法。
背景技术
现有的通信系统中,通信终端的基带芯片通常由一个协议处理器,一个数字信号处理(DSP,Digital Signal Processing)内核,加上多个硬件加速器组成,硬件加速器通常与DSP内核紧密耦合。例如,请参考图1所示,基带处理架构以DSP内核为控制核心,所有的硬件加速器21~2n,直接内存存取(DMA,Direct Memory Access)都需要由DSP内核配置后才能工作,并且数据在所有的硬件加速器和DSP内核、DMA之间的流动,也都需要DSP内核来进行配置。
在数据处理过程中,当需要某个硬件加速器处理某些数据时,由DSP内核通过总线访问该硬件加速器的寄存器,配置处理参数,启动该硬件加速器进行处理;当硬件加速器完成处理后,通过中断提请DSP内核处理其完成的输出。
然而,现有的基带芯片架构由于所有的硬件加速器都需要DSP内核配合才能工作,这就使得DSP内核的处理负荷较大。并且还存在以下问题:
DSP内核需要有很高的资源配置,包括高的工作频率和大容量的本地存储器(Memory),这些都带来了高的能耗。
由于数据的处理和流动均需要DSP内核的介入,当多个硬件加速器同时需要DSP内核介入时,DSP内核只能串行处理,这就使得基带芯片实时性能下降。
现有的基带芯片架构在2G/3G时代尚能满足需求,但是到了LTE时代,随着帧结构的缩短,单位时间内需要DSP内核进行的中断处理越来越多,越来越复杂。因为所有的硬件加速器都需要DSP内核配合才能工作,这就产生了DSP内核的处理瓶颈。
DSP内核本身带有很多计算存储资源,并且工作在很高的频率上,即使任何一个简单的中断都需要把DSP内核从正常处理或者睡眠中带出,这些计算存储资源产生了额外的耗电。这种强大的DSP内核加上周边“愚蠢”的硬件加速器的结构已经导致了LTE基带芯片性能的瓶颈和严重的发热问题。
发明内容
本发明实施例解决的是现有的基带芯片架构使得数字信号处理内核的处理负荷大,进而导致芯片性能低的问题。
为解决上述问题,本发明实施例提供一种基带芯片,包括:数字信号处理内核、若干硬件加速器和对应的控制器、消息网络和数据网络;所述数字信号处理内核适于通过所述消息网络向控制器传输配置消息,所述配置消息用于配置硬件加速器;所述控制器适于通过所述消息网络向其他控制器传输配置消息;所述数字信号处理内核和硬件加速器适于通过所述数据网络共享数据。
可选的,所述控制器还适于通过所述消息网络向所述数字信号处理内核传输通知消息,所述通知消息用于通知所述数字信号处理内核通过所述数据网络读取数据。
可选的,所述基带芯片还包括分别对应于所述数字信号处理内核和控制器的若干消息存储单元;所述数字信号处理内核和控制器适于通过所述消息网络向消息存储单元写入消息;所述数字信号处理内核和控制器适于从对应的消息存储单元读取消息。
可选的,所述基带芯片还包括消息池,所述数字信号处理内核和控制器适于通过所述消息网络访问所述消息池。
可选的,所述基带芯片还包括数据池,所述数字信号处理内核和硬件加速器适于通过所述数据网络访问所述数据池。
可选的,所述消息网络为低速网络,所述数据网络为高速网络。
可选的,所述消息网络采用总线结构或片上网络。
可选的,所述数据网络采用总线结构或片上网络。
可选的,所述控制器为微控制单元。
为解决上述问题,本发明实施例还提供一种上述基带芯片的数据处理方法,包括:所述数字信号处理内核和第一控制器通过所述消息网络传输第一配置消息;所述第一控制器基于所述第一配置消息配置对应的第一硬件加速器;所述数字信号处理内核和所述第一硬件加速器通过所述数据网络传输第一数据;所述第一硬件加速器处理所述第一数据以获得第二数据;所述第一控制器和第二控制器通过所述消息网络传输第二配置消息;所述第二控制器基于所述第二配置消息配置对应的第二硬件加速器;所述第一硬件加速器和所述第二硬件加速器通过所述数据网络传输第二数据;所述第二硬件加速器处理所述第二数据以获得第三数据。
可选的,所述基带芯片还包括分别对应于所述数字信号处理内核和控制器的若干消息存储单元;所述数字信号处理内核和第一控制器通过所述消息网络传输第一配置消息包括:所述数字信号处理内核通过所述消息网络将所述第一配置消息写入对应于所述第一控制器的消息存储单元;所述第一控制器从对应的消息存储单元读取所述第一配置消息;所述第一控制器和第二控制器通过所述消息网络传输第二配置消息包括:所述第一控制器通过所述消息网络将所述第二配置消息写入对应于所述第二控制器的消息存储单元;所述第二控制器从对应的消息存储单元读取所述第二配置消息。
可选的,所述基带芯片的数据处理方法还包括:通过第一中断信号唤醒所述第一控制器,所述第一中断信号由第一定时器产生或者由对应于所述第一控制器的消息存储单元产生或者由所述数字信号处理内核产生;通过第二中断信号唤醒所述第二控制器,所述第二中断信号由第二定时器产生或者由对应于所述第二控制器的消息存储单元产生或者由所述第一控制器产生。
可选的,所述基带芯片的数据处理方法还包括:所述第二控制器通过所述消息网络将通知消息写入对应于所述数字信号处理内核的消息存储单元;所述数字信号处理内核从对应的消息存储单元读取所述通知消息。
可选的,所述基带芯片还包括消息池;所述数字信号处理内核和第一控制器通过所述消息网络传输第一配置消息包括:所述数字信号处理内核通过所述消息网络将所述第一配置消息写入所述消息池中对应于所述第一控制器的位置;所述第一控制器通过所述消息网络从所述消息池中的对应位置读取所述第一配置消息;所述第一控制器和第二控制器通过所述消息网络传输第二配置消息包括:所述第一控制器通过所述消息网络将所述第二配置消息写入所述消息池中对应于所述第二控制器的位置;所述第二控制器通过所述消息网络从所述消息池中的对应位置读取所述第二配置消息。
可选的,所述基带芯片的数据处理方法还包括:通过第一中断信号唤醒所述第一控制器,所述第一中断信号由第一定时器产生或者由所述数字信号处理内核产生;通过第二中断信号唤醒所述第二控制器,所述第二中断信号由第二定时器产生或者由所述第一控制器产生。
可选的,所述基带芯片的数据处理方法还包括:所述第二控制器通过所述消息网络将通知消息写入所述消息池中对应于所述数字信号处理内核的位置;所述数字信号处理内核通过所述消息网络从所述消息池中的对应位置读取所述通知消息。
可选的,所述基带芯片还包括数据池;所述数字信号处理内核和所述第一硬件加速器通过所述数据网络传输第一数据包括:所述数字信号处理内核通过所述数据网络将所述第一数据写入数据池;所述第一硬件加速器通过所述数据网络从所述数据池中的第一位置读取所述第一数据,所述第一位置基于所述第一数据在所述数据池中的位置信息确定;所述第一硬件加速器和所述第二硬件加速器通过所述数据网络传输第二数据包括:所述第一硬件加速器通过所述数据网络将所述第二数据写入数据池;所述第二硬件加速器通过所述数据网络从所述数据池中的第二位置读取所述第二数据,所述第二位置基于所述第二数据在所述数据池中的位置信息确定。
可选的,所述第一数据在所述数据池中的位置信息承载于所述第一配置消息中,所述第二数据在所述数据池中的位置信息承载于所述第二配置消息中。
可选的,所述基带芯片的数据处理方法还包括:所述第二硬件加速器处理第二数据以获得第三数据;所述第二硬件加速器通过所述数据网络将所述第三数据写入数据池;所述数字信号处理内核通过所述数据网络从所述数据池中的第三位置读取所述第三数据,所述第三位置基于所述第三数据在所述数据池中的位置信息确定。
可选的,所述第三数据在所述数据池中的位置信息承载于通知消息中,所述通知消息由所述第二控制器通过所述消息网络传输至所述数字信号处理内核。
与现有技术相比,本发明实施例的基带芯片及其数据处理方法至少具有以下有益效果:
为每个硬件加速器配备一个控制器,可以无需DSP内核的配置就能根据输入的消息进行配置和数据处理,完成数据处理后,通过消息网络自动向后续处理数据的硬件加速器对应的控制器发出消息。这样在数据处理过程中,DSP内核无需介入每个硬件加速器的处理,其处理负荷大大降低。
由于每个硬件加速器都配备了控制器,原先由DSP内核进行的控制功能分布到各个控制器中,控制器只做特定硬件加速器的控制、配置和简单的运算,因此相比DSP内核来说,其功耗非常小。并且可以避免多个硬件加速器同时需要DSP内核处理的时候,在DSP中排队处理的情况,多个硬件加速器可以分布式的并行处理,因此,系统的并行度提高了,实时性能也有所增强。
由于硬件加速器配备了控制器,控制器可以根据消息承载的信息推导硬件加速器的具体配置参数,实现硬件加速器在多个模式之间的复用,因此灵活性也可大大提高,也适应未来多模通信的需求。当处理能力不足时,简单地增加硬件加速器个数,并且相应修改控制器的控制,则可以轻易地扩展基带芯片的处理能力。
采用低速的消息网络传输消息,既不增加系统的延迟,又保证了可以仅在需要高速数据访问时才打开高功耗的高速的数据网络。
通过中断信号唤醒控制器,这样可以仅在需要硬件加速器处理数据时,才启动对应的控制器处理消息并配置和启动硬件加速器,在不处理数据时硬件加速器和对应的控制器处于睡眠状态,相应的功耗也就非常小。
附图说明
图1是现有的一种基带芯片的结构示意图;
图2至图4是本发明实施例的基带芯片的结构示意图;
图5是本发明实施例的基带芯片的数据处理方法的流程示意图。
具体实施方式
图2所示的本发明实施例的基带芯片包括:DSP内核1、若干硬件加速器21~2n和对应的控制器31~3n、消息网络4和数据网络5。
DSP内核1可以通过消息网络4向至少一个控制器传输配置消息,任一控制器可以通过消息网络4向其他至少一个控制器传输配置消息。DSP内核1和硬件加速器21~2n可以通过数据网络5共享数据。
所述配置消息用于配置硬件加速器。具体地,所述配置消息承载了与硬件加速器的配置参数相关的信息,控制器31~3n可以分别基于获取的配置消息配置对应的硬件加速器21~2n。
进一步,任一或任意多个控制器还可以通过消息网络4向DSP内核1传输通知消息,所述通知消息用于通知DSP内核1通过数据网络5读取数据。
在本发明实施例中,消息网络可以采用总线结构,也可以采用片上网络(NOC,Network on Chip);数据网络可以采用总线结构,也可以采用片上网络。以总线结构为例,在图2所示的基带芯片中,消息网络4包括第一总线41,数据网络包括第二总线51。
DSP内核1和控制器31~3n之间可以通过第一总线41传输消息,DSP内核1和硬件加速器21~2n之间可以通过第二总线51传输数据。例如,当DSP内核1需要硬件加速器21处理数据时,DSP内核1可以通过第一总线41向控制器31发送用于配置硬件加速器21的配置消息;控制器31启动并配置硬件加速器21后,DSP内核1通过第二总线51向硬件加速器21发送要处理的数据。又如,当硬件加速器22要向DSP内核1返回处理后的数据时,控制器32可以通过第一总线向DSP内核1发送用于通知DSP内核1读取数据的通知消息;DSP内核1接收到所述通知消息后,硬件加速器22通过第二总线51向DSP内核1发送处理后的数据。
控制器31~3n之间也可以通过第一总线41传输消息,硬件加速器21~2n之间也可以通过第二总线51传输数据。例如,当硬件加速器21处理完数据后需要硬件加速器22继续处理数据时,控制器31可以通过第一总线41向控制器32发送用于配置硬件加速器22的配置消息;控制器32启动并配置硬件加速器22后,硬件加速器21通过第二总线51向硬件加速器22发送要继续处理的数据。
请再参考图3,图3所示的本发明实施例的基带芯片包括:DSP内核1、若干硬件加速器21~2n和对应的控制器31~3n、消息网络4、消息存储单元420~42n、数据网络5和数据池52。与图2不同的是,在图3所示的基带芯片中,还包括分别对应于DSP内核1和控制器31~3n的若干消息存储单元420~42n,以及数据池52。
具体地,DSP内核1和控制器31~3n可以分别通过第一总线41向消息存储单元写入消息,DSP内核1和控制器31~3n可以分别从对应的消息存储单元读取消息。例如,DSP内核1可以通过第一总线41将配置消息写入对应于控制器31的消息存储单元421;控制器31可以从对应的消息存储单元421读取所述配置消息。又如,控制器31可以通过第一总线41将配置消息写入对应于控制器32的消息存储单元422;控制器32可以从对应的消息存储单元422读取所述配置消息。再如,控制器31可以通过第一总线41将通知消息写入对应于DSP内核1的消息存储单元420;DSP内核1可以从对应的消息存储单元420读取所述通知消息。每一消息存储单元分别可以储存至少一个消息,当对应的消息存储单元中有多个消息时,DSP内核或控制器可以按预定的处理规则读取和处理多个消息。
DSP内核1和硬件加速器21~2n可以分别通过第二总线51访问数据池52。例如,DSP内核1可以通过第二总线51将数据写入数据池52或者从数据池52读取数据;硬件加速器21可以通过第二总线51将数据写入数据池52或者从数据池52读取数据。DSP内核1和硬件加速器21~2n在访问(写入或读取)数据池52时,要访问的位置可以基于DSP内核1或硬件加速器21~2n通过消息网络4发送的位置信息确定,所述位置信息可以承载于配置消息或通知消息中,也可以承载于其他消息中。
请再参考图4,图4所示的本发明实施例的基带芯片包括:DSP内核1、若干硬件加速器21~2n和对应的控制器31~3n、消息网络4、消息池43、数据网络5和数据池52。图3所示的基带芯片中的消息网络4与消息存储单元420~42n分别连接,在图4所示的基带芯片中,消息网络4与消息池43连接。
具体地,DSP内核1和控制器31~3n可以分别通过第一总线41访问消息池43。例如,DSP内核1可以通过第一总线41将配置消息写入消息池43中对应于控制器31的位置431;控制器31可以通过第一总线41从消息池43中的对应位置431读取所述配置消息。又如,控制器31可以通过第一总线41将配置消息写入消息池43中对应于控制器32的位置432;控制器32可以通过第一总线41从消息池43中的对应位置432读取所述配置消息。再如,控制器32可以通过第一总线41将通知消息写入消息池43中对应于DSP内核1的位置430;DSP内核1可以通过第一总线41从消息池43中的对应位置430读取所述通知消息。消息池可以包括多个对应DSP内核或同一控制器的位置,也就是说,DSP内核或控制器可以按预定的处理规则读取和处理多个消息。
需要说明的是,在图4所示实施例中,为DSP内核和每一控制器在消息池43预先指定了至少一个对应位置,在写入消息时,将消息写入预先指定的位置即可;在读取消息时,从预先指定的位置读取消息即可。在本发明其他实施例中,也可以不预先指定对应位置,例如,在写入消息时,可以将DSP内核或控制器的标识信息承载于写入的消息中,DSP内核或控制器可以按位置顺序读取消息池,基于消息中承载的标识信息提取对应的消息。
在本发明实施例中,所述消息网络可以为低速网络,所述数据网络可以为高速网络。这里所说的“低速”和“高速”是相对而言的,在此不对具体的传输速率进行限定,本领域技术人员可以根据实际设计需求,采用适合的低传输速率的消息网络和高传输速率的数据网络。
由于消息网络传输的消息很短,其主要承载了一些参数信息,不承载大容量的处理数据,因此,采用较低传输速率的网络传输消息的延迟相对于系统级别的延迟来说是相当小的,这样既不增加系统的延迟,又保证了可以仅在需要高速数据访问的时候才打开高功耗的高传输速率的数据网络。
在本发明实施例中,所述控制器可以为微控制单元(MCU,Micro Control Unit)。MCU是一个通用指令或数据处理单元,一般采用8~32位精简指令(RISC),包括有ROM,RAM,累加器,寄存器,堆栈,运算逻辑单元,计数器和中断以及I/O口等。每个硬件加速器对应的MCU可以由中断信号唤醒,读取和处理消息。
为每个硬件加速器配备一个小型的控制器(如MCU),控制器使得硬件加速器成为一个智能的硬件加速器,可以无需DSP内核的配置就能根据输入的消息进行配置和数据处理,完成数据处理后,自动向后续处理数据的硬件加速器对应的控制器发出消息。由于每个硬件加速器都配置了控制器,控制器只做特定硬件加速器的控制、配置和简单的运算,因此相比DSP内核来说,其功耗非常小。并且,由于多个硬件加速器分布式的并行处理,系统的并行度提高了,实时性能也有所增强。
由于硬件加速器配备了控制器,其灵活性也可大大提高。MCU可以根据消息承载的信息推导硬件加速器的具体配置参数,实现硬件加速器在多个模式之间的复用。当处理能力不足时,由于硬件加速器处于同等地位,简单地增加硬件加速器个数,并且相应修改控制器的控制代码,则可以轻易地扩展基带芯片的处理能力。
基于上述本发明实施例的基带芯片,本发明实施例的基带芯片的数据处理方法的流程如图5所示,下面以DSP内核需要两个硬件加速器(以第一硬件加速器和第二硬件加速器分别表示两个不同的硬件加速器)处理数据为例对各步骤的具体实施进行详细说明。
执行步骤S11,DSP内核和第一控制器通过消息网络传输第一配置消息。具体地,当DSP内核需要第一硬件加速器和第二硬件加速器依次处理数据时,DSP内核通过消息网络向第一控制器传输第一配置消息,其中,所述第一控制器为对应于第一硬件加速器的控制器,所述第一配置消息用于配置第一硬件加速器,承载了一些配置所述第一硬件加速器所需的参数信息。
具体实施时,基于图2所示的基带芯片,步骤S11具体可以包括:DSP内核1向消息网络4发送第一配置消息;控制器31从消息网络4接收第一配置消息。
基于图3所示的基带芯片,步骤S11具体可以包括:DSP内核1通过消息网络4将第一配置消息写入对应于控制器31的消息存储单元421;控制器31从对应的消息存储单元421读取第一配置消息。
基于图4所示的基带芯片,步骤S11具体可以包括:DSP内核1通过消息网络4将第一配置消息写入消息池43中对应于控制器31的位置431;控制器31通过消息网络4从消息池43中的对应位置431读取第一配置消息。
进一步,为了降低功耗,控制器和硬件加速器可以在不工作的时候进入睡眠状态,当需要控制器处理消息时,可以通过中断信号唤醒控制器。
具体实施时,中断信号可以由外部定时器产生。例如,第一定时器每隔第一预定时间产生第一中断信号唤醒控制器31读取消息。
中断信号也可以由需要向控制器发送消息的DSP内核或控制器产生。例如,基于图2所示的基带芯片,当DSP内核1要向控制器31发送第一配置消息时,DSP内核1可以先产生第一中断信号唤醒控制器31,然后,DSP内核1通过第一总线41向控制器31发送第一配置消息。又如,基于图3或图4所示的基带芯片,当DSP内核1在消息存储单元421或消息池43中的位置431写入第一配置消息后,产生第一中断信号唤醒控制器31,控制器31再从消息存储单元421或消息池43中的位置431读取第一配置消息。
基于图3所示的基带芯片,中断信号还可以由控制器对应的消息存储单元产生。例如,当DSP内核1在消息存储单元421写入第一配置消息后,消息存储单元421产生第一中断信号唤醒控制器31,控制器31再从消息存储单元421读取第一配置消息。
通过中断信号唤醒对应的控制器,这样可以仅在需要硬件加速器处理数据时,才启动对应的控制器处理消息并配置和启动硬件加速器,在不处理数据时硬件加速器和对应的控制器处于睡眠状态,相应的功耗也就非常小。
请继续参考图5,执行步骤S12,第一控制器基于第一配置消息配置对应的第一硬件加速器。具体地,控制器31在读取第一配置消息后,解析第一配置消息,推导出配置硬件加速器21所需的具体参数,然后配置并启动硬件加速器21。
执行步骤S13,DSP内核和第一硬件加速器通过数据网络传输第一数据。具体地,DSP内核1通过数据网络5向硬件加速器21传输需要硬件加速器21处理的数据,即第一数据。
具体实施时,基于图2所示的基带芯片,步骤S13具体可以包括:DSP内核1向数据网络5发送第一数据;硬件加速器21从数据网络5接收第一数据。
基于图3或图4所示的基带芯片,步骤S13具体可以包括:DSP内核1通过数据网络5将第一数据写入数据池52;硬件加速器21通过数据网络5从数据池52中的第一位置读取第一数据。其中,所述第一位置基于第一数据在数据池52中的位置信息确定,所述第一数据在数据池52中的位置信息可以承载于所述第一配置消息中,也就是说,DSP内核1可以预先将第一数据写入在数据池52中的位置信息打包在第一配置消息中,控制器31读取第一配置消息后,将解析到的第一数据在数据池52中的位置信息发送给硬件加速器21,硬件加速器21根据位置信息确定第一位置,然后通过数据网络5从数据池52中的第一位置读取第一数据。DSP内核1通过数据网络5将第一数据写入数据池52的步骤可以在硬件加速器21启动后进行,也可以是在硬件加速器21启动前已经执行。
所述第一数据在数据池52中的位置信息也可以不与第一配置消息一起发送,例如也可以是,在DSP内核1通过数据网络5将第一数据写入数据池52后,DSP内核1通过消息网络4单独发送携带第一数据在数据池52中的位置信息的消息给控制器31,控制器31解析到位置信息后转发给硬件加速器21,硬件加速器21根据位置信息确定第一位置,然后通过数据网络5从数据池52中的第一位置读取第一数据。
请继续参考图5,执行步骤S14,第一硬件加速器处理第一数据以获得第二数据。具体地,硬件加速器21处理第一数据,处理后得到的数据即为第二数据,也就是需要硬件加速器22继续处理的数据。
执行步骤S15,第一控制器和第二控制器通过消息网络传输第二配置消息。所述第二控制器为对应于第二硬件加速器的控制器,所述第二配置消息用于配置第二硬件加速器,承载了一些配置所述第二硬件加速器所需的参数信息。具体地,硬件加速器21完成数据处理后,需要硬件加速器22继续处理数据,则在启动硬件加速器22前,需要由对应的控制器32配置硬件加速器22,与硬件加速器22配置相关的一些信息由控制器31通过消息网络4传输给控制器32。
具体实施时,基于图2所示的基带芯片,步骤S15具体可以包括:控制器31向消息网络4发送第二配置消息;控制器32从消息网络4接收第二配置消息。
基于图3所示的基带芯片,步骤S15具体可以包括:控制器31通过消息网络4将第二配置消息写入对应于控制器32的消息存储单元422;控制器32从对应的消息存储单元422读取第二配置消息。
基于图4所示的基带芯片,步骤S15具体可以包括:控制器31通过消息网络4将第二配置消息写入消息池43中对应于控制器32的位置432;控制器32通过消息网络4从消息池43中的对应位置432读取第二配置消息。
进一步,与控制器31类似,为了降低功耗,控制器32也可以通过中断信号唤醒。
具体实施时,中断信号可以由外部定时器产生。例如,第二定时器每隔第二预定时间产生第二中断信号唤醒控制器32读取消息。
中断信号也可以由需要向控制器发送消息的DSP内核或控制器产生。例如,基于图2所示的基带芯片,当控制器31要向控制器32发送第二配置消息时,控制器31可以先产生第二中断信号唤醒控制器32,然后,控制器31通过消息网络4向控制器32发送第二配置消息。又如,基于图3或图4所示的基带芯片,当控制器31在消息存储单元422或消息池43中的位置432写入第二配置消息后,产生第二中断信号唤醒控制器32,控制器32再从消息存储单元422或消息池43中的位置432读取第二配置消息。
基于图3所示的基带芯片,中断信号还可以由控制器对应的消息存储单元产生。例如,当控制器31在消息存储单元422写入第二配置消息后,消息存储单元422产生第二中断信号唤醒控制器32,控制器32再从消息存储单元422读取第二配置消息。
请继续参考图5,执行步骤S16,第二控制器基于第二配置消息配置对应的第二硬件加速器。具体地,控制器32在读取第二配置消息后,解析第二配置消息,推导出配置硬件加速器22所需的具体参数,然后配置并启动硬件加速器22。
执行步骤S17,第一硬件加速器和第二硬件加速器通过数据网络传输第二数据。具体地,硬件加速器21通过数据网络5向硬件加速器22传输需要硬件加速器22处理的数据,即第二数据。
具体实施时,基于图2所示的基带芯片,步骤S17具体可以包括:硬件加速器21向数据网络5发送第二数据;硬件加速器22从数据网络5接收第二数据。
基于图3或图4所示的基带芯片,步骤S17具体可以包括:硬件加速器21通过数据网络5将第二数据写入数据池52;硬件加速器22通过数据网络5从数据池52中的第二位置读取第二数据。其中,所述第二位置基于第二数据在数据池52中的位置信息确定,所述第二数据在数据池52中的位置信息可以承载于所述第二配置消息中,也就是说,控制器31可以预先将第二数据写入在数据池52中的位置信息打包在第二配置消息中,控制器32读取第二配置消息后,将解析到的第二数据在数据池52中的位置信息发送给硬件加速器22,硬件加速器22根据位置信息确定第二位置,然后通过数据网络5从数据池52中的第二位置读取第二数据。硬件加速器21通过数据网络5将第二数据写入数据池52的步骤可以在硬件加速器22启动后进行,也可以是在硬件加速器22启动前已经执行。
所述第二数据在数据池52中的位置信息也可以不与第二配置消息一起发送,例如也可以是,在硬件加速器21通过数据网络5将第二数据写入数据池52后,控制器31通过消息网络4单独发送携带第二数据在数据池52中的位置信息的消息给控制器32,控制器32解析到位置信息后转发给硬件加速器22,硬件加速器22根据位置信息确定第二位置,然后通过数据网络5从数据池52中的第二位置读取第二数据。
请继续参考图5,执行步骤S18,第二硬件加速器处理第二数据以获得第三数据。具体地,硬件加速器22处理第二数据,处理后得到的数据即为第三数据。
进一步,硬件加速器22完成数据处理后,需要将第三数据返回给DSP内核1进行后续处理,本发明实施例的基带芯片的数据处理方法还可以继续执行步骤S19,第二控制器和DSP内核通过消息网络传输通知消息。所述通知消息用于通知DSP内核通过所述数据网络读取数据。
具体实施时,基于图2所示的基带芯片,步骤S19具体可以包括:控制器32向消息网络4发送通知消息;DSP内核1从消息网络4接收通知消息。
基于图3所示的基带芯片,步骤S19具体可以包括:控制器32通过消息网络4将通知消息写入对应于DSP内核1的消息存储单元420;DSP内核1从对应的消息存储单元420读取通知消息。
基于图4所示的基带芯片,步骤S19具体可以包括:控制器32通过消息网络4将通知消息写入消息池43中对应于DSP内核1的位置430;DSP内核1通过消息网络4从消息池43中的对应位置430读取通知消息。可以通过中断信号将DSP内核1从正常处理或睡眠中转向读取通知消息,中断信号可以由外部定时器产生,也可以由返回数据的硬件加速器22对应的控制器32产生。
请继续参考图5,执行步骤S20,第二硬件加速器和DSP内核通过数据网络传输第三数据。具体地,硬件加速器22通过数据网络5向DSP内核1传输第三数据。
具体实施时,基于图2所示的基带芯片,步骤S20具体可以包括:硬件加速器22向数据网络5发送第三数据;DSP内核1从数据网络5接收第三数据。
基于图3或图4所示的基带芯片,步骤S20具体可以包括:硬件加速器22通过数据网络5将第三数据写入数据池52;DSP内核1通过数据网络5从数据池52中的第三位置读取第三数据。其中,所述第三位置基于所述第三数据在所述数据池中的位置信息确定,所述第三数据在数据池52中的位置信息可以承载于所述通知消息中,也就是说,控制器32可以预先将第三数据写入在数据池52中的位置信息打包在通知消息中,DSP内核1读取到通知消息后,根据解析到的第三数据在数据池52中的位置信息确定第三位置,然后通过数据网络5从数据池52中的第三位置读取第三数据。硬件加速器22通过数据网络5将第三数据写入数据池52的步骤可以在DSP内核1读取通知消息后进行,也可以是在DSP内核1读取通知消息前已经执行。
所述第三数据在数据池52中的位置信息也可以不与通知消息一起发送,例如也可以是,在控制器32通过数据网络5将第三数据写入数据池52后,控制器32通过消息网络4单独发送携带第三数据在数据池52中的位置信息的消息给DSP内核1,DSP内核1根据解析到的位置信息确定第三位置,然后通过第二总线51从数据池52中的第三位置读取第三数据。
DSP内核读取第三数据后可以继续处理第三数据,再将处理后的数据交由其他的硬件加速器处理,也可以将第三数据转交由其他的硬件加速器处理,其处理过程可以参考上述相应的说明。
需要说明的是,上述实施例的数据处理方法的流程是以数据处理由两个硬件加速器完成为例进行说明的,硬件加速器22完成数据处理后,将第三数据返回给DSP内核1进行后续处理。而如果数据处理需要由多个(两个以上)硬件加速器进行时,则在图5所示的步骤S18执行完后,即硬件加速器22完成数据处理后,后续还需要其他的硬件加速器继续处理数据,因此还需要硬件加速器22对应的控制器32通过消息网络4发送配置消息给后续处理的硬件加速器对应的控制器,以通知后续处理的硬件加速器继续处理第三数据。基于本发明实施例的基带芯片架构,前一处理的硬件加速器对应的控制器可以通过消息网络发送配置消息给后续处理的硬件加速器对应的控制器,以通知后续处理的硬件加速器通过数据网络获取数据并继续处理,直到最后处理的硬件加速器完成数据处理;然后可以按照类似于步骤S19和S20将处理完成的数据返回给DSP内核,其中的第二控制器相应地改为最后处理的硬件加速器对应的控制器,第二硬件加速器相应地改为最后处理的硬件加速器,第三数据相应地改为最后处理完得到的数据。
为了更清楚地说明本发明实施例的基带芯片架构的功能和优点,下面基于图3所示的基带芯片结构,举一个具体的实例。
DSP内核有一组数据需要进行Turbo解码和CRC校验。DSP内核1通过消息网络4把这组数据在共享数据池(Memory)52中的位置发送到Turbo解码器的消息存储单元(Mailbox)中。Mailbox的功能是接收消息,并且通过中断唤醒对应的MCU对消息进行处理。Turbo解码器对应的Mailbox唤醒Turbo解码器对应的MCU,MCU根据Mailbox中的消息配置Turbo解码器,Turbo解码器通过数据网络5从共享Memory52提取待解码数据并进行解码。Turbo解码器解码完毕后,通过数据网络5将结果(待校验数据)输出到共享Memory52中的指定位置,并且通过消息网络4发出一个消息到CRC解码加速器对应的Mailbox,CRC解码加速器对应的Mailbox唤醒CRC解码加速器对应的MCU,MCU根据Mailbox中的消息配置CRC解码加速器,CRC解码加速器从共享Memory52提取待校验数据并进行CRC校验。可以看到,Turbo解码加速器解码数据后,并不需要DSP内核的介入,数据可以在“聪明”的分布式的硬件加速器之间自行流动。
由于加速器配备了MCU,其灵活性大大提高。以Turbo解码为例,只要在消息中包含通信制式、帧号、信道等信息,MCU可以根据消息荷载的这些信息推导具体的Turbo解码器的配置参数,实现加速器在多个模式之间的复用。当处理能力不足时,简单地增加加速器个数,并且相应修改MCU的控制代码,则可以轻易地扩展基带芯片的处理能力。
需要说明的是,上述实施例是以硬件加速器处理一组输入数据为例进行说明的,可以理解的是,在本发明其他实施例中,硬件加速器也可以处理多组输入数据,以获得输出数据。所述多组输入数据可以是DSP内核和其他硬件加速器通过数据网络传输的数据,或者可以是多个其他硬件加速器通过数据网络传输的数据。
虽然本发明披露如上,但本发明并非限定于此。任何本领域技术人员,在不脱离本发明的精神和范围内,均可作各种更动与修改,因此本发明的保护范围应当以权利要求所限定的范围为准。