EDN China > 设计实例 > 微处理器与DSP > 正文
?

基站调制解调器:选择多核基带处理器迫在眉睫

德州仪器技术官 Alan Gatherer?? 2008年12月01日 ?? 收藏0

  一种解决方案是定义高速率和中等速率等多个任务级别, 并且定义每个等级的具体数量。然后内核可根据所需的用户速率选择任务类型。问题是用户速率可能会改变,从而迫使内核将所有状态信息从一种结构转移至另一种结构。

  因此,虽然可以针对所有任务预定义某些结构,但其他结构必须与任务动态关联。在此情况下,内存管理必须尽可能简单,而且还得避免内存碎片。

  在用户出现时可以动态生成任务及其方式,然后在用户退出时删除。这种方法很明确,但是缺点是在内存中创建和删除结构时会产生开销并且造成相关内存管理问题。

  在根据用户分配任务时,任务数随着用户数的增加会成倍增长。在WCDMA基站中,一颗芯片支持的32~64个用户中的每一个都会需要数百个任务,这是巨大的工作负载。随着任务数量的增加,每秒的任务切换次数也会相应增加。因此中断程序和内核会耗费更多时间,而用于有效工作的时间会更少。TI相信,如果存在数十个用户,那么基于用户的任务组织工作会导致系统无法管理。

  根据功能分配任务

  图3所示系统存在7项针对2名用户按颜色划分的任务,其按功能分配。

根据功能进行的任务分配

  在这种设计中,内核无需知道系统中存在多少用户。相反,它只需知道必须执行多少个唯一功能。随着用户数量增加,完成一项任务的时间也会随之增加。

  如果在数据可用时立即调用某项任务,则会为每个用户调用每项任务,而且任务切换次数随用户数量增加而增加,这种情况会造成大量的任务切换次数。更好的方法是为每项任务分配一个链接列表。当任务完成时,将在该用户中执行作为该任务(与下项功能相关联)链接列表项目的系统。

  这种方法不会随着用户在链接列表中的累加而产生中断。在每项任务被激活时,它会完成其链接列表或者运行至链接列表被抢占为止。其中一种选择是仅允许链接列表用户处理之间的抢占,这样用户功能就永远不会中断。这种选择可以在存储需求最低状态下实现抢占,因为所有需要的状态已经保存到相关列表中了。

  其中一个关键的考虑事项是激活任务的频率:

  ? 简单的周期性中断:通过将任务分组到少量优先级队列可以进一步简化此类中断。在WCDMA中,只需两个队列即可获得良好的性能。其中存在单个周期中断,内核在切换到低优先级队列之前先清空高优先级队列。高优先级任务允许抢占时间更长的低优先级任务,而不需要随用户数增加的数据驱动中断。需要计算中断周期,以确保能够在最后期限之前以足够快的速度完成高优先级任务的最差情况负载。

  ? 多个周期中断:其能够迅速完成高优先级队列,同时在完成较低优先级队列之前保留尽可能多的时间。因此,只要不全部完成高优先级队列,就不会遗留低优先级队列中的任务。

  ? 队列达到特定大小时的中断:这是希望将中断次数最小化时执行队列的最有效方式,但是它会使任务的延迟取决于到达任务的数量。因此它不太适用于严格的实时系统。

  ? 队列头(head of queue)达到特定时限时的中断:可以实现一定时间内一定水平的服务保证,同时将中断次数最小化。为了实现上述目的可以为每个队列头设置一个定时器,然后在定时器达到指定值时产生中断。如果需要处理队列头,则必须采取某种方法将定时器重新设置到下一个队列项目的等待时间长度。其适用于需要跟踪队列中各项任务所耗时间的复杂系统。

  为了将任务数量和任务抢占开销保持在可控水平,它们不可根据用户数量而定。相反,任务应当与功能而不是与用户关联。由于目前的BTS为了实时满足客户需求而必须承担更多数据流量,因此这种设计越来越重要。

  多核考虑

  当今的SoC一般是多核CPU,采用独立的IP块,为了实现一个完整的调制解调器功能必须实现互操作和同步化。这种架构需要某种方式将优先级队列系统(图4)映射至多CPU环境。

基于功能的任务优先级队列

  最简单的选项是将用户分配到相关CPU,使每个CPU都保持其自己的队列。但是这样会有两个缺点:第一,所有用户有可能共享某些功能(如过滤与解调)。第二,某些功能可能需要共享协处理器或外设,造成它们不具有完全独立性。这样会造成一系列优先级队列之间的交互复杂化,从而难以保证实时性能。由于必须要支持多个CPU的存取,协处理器和外设也将变得更为复杂,因此必须决定CPU的哪项任务优先。所有这些都会增加软、硬件驱动程序的复杂性,使最终系统的测试更加困难、更加耗时。

  为避免这些缺点,TI采取了不同的方案:为单个CPU分配功能任务,从而使每个CPU都负责唯一一组功能。一般只加速特定类型功能的每一个协处理器都与单个CPU关联。这种方法可以显著简化协处理器所执行任务的排序。在许多情况下,外设也会与单个CPU通信,从而减少对不缺乏数据的任务进行检验所需的测试。


?? ?? ??


打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮

1.扫描左侧二维码
2.点击右上角的分享按钮
3.选择分享给朋友
?? ??

基站? 调制解调器? 多核?

相关文章

我来评论
美国的游客
美国的游客 ??? (您将以游客身份发表,请登录 | 注册)
?
有问题请反馈