原创 协议栈与物理层在芯片上的分布

2013-4-24 14:11 2149 23 35 分类: 消费电子

2011-12-27 记录

曾经有个同学在MSN上问我,为什么协议栈软件总是跑在ARM上,为什么物理层软件跑在DSP上呢?

呵呵,好像从咱们开始做终端软件那天起,就是这样子设计的。为什么呢?

我简单的回答了一下:因为软件的结构不同。

协议栈软件基本上都是基于状态机的,有很多层次结构,需要很多个不同优先级的task来运行。他的总体结构是需要一个RTOS来做调度的多个task可以通信,互相抢占式的。

物理层软件基本上是算法流程的,没有那么多的层次结构。重在算法本身的并行处理上面。DSP内核也是基于这些算法的特征来设计的。于是对于中断的响应上面往往比较差,甚至现在的vector engine的DSP就不响应中断。

于是,不同的芯片内核应不同的应用场景而生。而不同的软件结构就运行在了不同的芯片内核上而已。如此配合才可以做到系统的最优。

这位执着的同学继续问:那么协议栈能否直接跑在DSP上,这样不是节省一颗ARM吗?

这个问题问得蛮好的。

那么咱们得看这整个系统的需求了。不同的系统需求是完全不一样的。协议栈有多少层次,有多少模块,多少状态要处理,整个软件结构会怎么划分,会有多大的代码量,需要多少运算量,会有怎样的抢占关系,实时性的要求是怎样的。

这是一个系统设计的问题,不能单纯的用一种通用的想法来约束系统设计。如果只是一个简单的协议。例如就是基于物理层做了一层协议,那么直接就做在一起,用一颗DSP就处理了有何尝不可。记得十年前刚刚工作的时候,我就设计了一个协议,用于SCDMA的基站与基站之间的一种透明的点到点的通信的协议,也就是直接跟声码器等软件跑在一颗DSP上。

而如果要谈到复杂的协议栈,如GSM/GPRS这样的,你一定要弄到一颗DSP上去做,那就是自讨苦吃了。当然如果是如C64X这么强悍的DSP,另当别论了。GSM、GPRS这样的协议栈,主要是逻辑关系太过于复杂,模块多,层次多。这样的软件跟物理层软件混在一起,会严重影响其实时性。而且代码量大,要放在带cache的系统上运行才是合适的。cache适合这种数据间有一定相关性,又不是剧烈相关的应用场景。如果剧烈相关,那么用sratch的memory可能更合适一点。

而如LTE这样的协议栈又是另外的话题了。首先数据面和控制面的需求就完全不同,最好时分在不同的core上。

细说起来,花很长。总之是需要根据具体的系统需求来做方案的,要考虑到关键点的细节,就好选择了。


 

PARTNER CONTENT

文章评论12条评论)

登录后参与讨论

用户1498631 2013-10-27 10:45

也是一种理解吧。

用户1071866 2013-10-21 23:10

妞,实现基带的DSP核也是有操作系统的哦,那是真正的RTOS

用户561832 2013-6-17 11:14

good~~

用户1294035 2013-5-3 14:43

直接翻译wikipedia上的文章(http://en.wikipedia.org/wiki/Baseband_processor)如下:

将基带处理器(BP-baseband processor)从主处理器(Application processor)分开的原因有三:

1. 射频性能: 射频控制功能(信号调制,编码, 频率位移等)是与时序高度相关的,同时需要RTOS.

2. 法律: 一些监管机构(如US FCC)要求在与蜂窝网络通信的设备上运行的软件协议栈须经认证。将BP从AP分开到一个独立的部件里允许重用BP,而不必认证整个AP.

3. 射频可靠性: 将BP单独分开允许应用和其OS改动的同时保证射频工作正确.

用户1652792 2013-4-27 10:44

不错,讲到点子上了

用户1114952 2013-4-27 09:59

“协议栈软件基本上都是基于状态机的,有很多层次结构,需要很多个不同优先级的task来运行。他的总体结构是需要一个RTOS来做调度的多个task可以通信,互相抢占式的。 物理层软件基本上是算法流程的,没有那么多的层次结构。重在算法本身的并行处理上面。DSP内核也是基于这些算法的特征来设计的。” 这个观念提到不错。

用户1315892 2013-4-26 20:54

协议栈软件基本上都是基于状态机的,有很多层次结构,需要很多个不同优先级的task来运行。他的总体结构是需要一个RTOS来做调度的多个task可以通信,互相抢占式的。 物理层软件基本上是算法流程的,没有那么多的层次结构。重在算法本身的并行处理上面。DSP内核也是基于这些算法的特征来设计的。于是对于中断的响应上面往往比较差,甚至现在的vector engine的DSP就不响应中断。 于是,不同的芯片内核应不同的应用场景而生。而不同的软件结构就运行在了不同的芯片内核上而已。如此配合才可以做到系统的最优。 这位执着的同学继续问:那么协议栈能否直接跑在DSP上,这样不是节省一颗ARM吗?

用户1610239 2013-4-26 11:49

很好,学习

用户3809340 2013-4-26 10:11

感谢分享这样深入的分析!

用户1080971 2013-4-26 09:52

有道理
相关推荐阅读
用户1498631 2016-02-03 08:17
求贤篇--求PHY的开发高手
如果有无线通信终端PHY的算法和软件高手看到此文,且对于做LTE的基带芯片兴趣浓厚,对充满机会与挑战的产品开发有着极强的征服欲,请给我发邮件min.liang@simplnano.cn。 求贤...
用户1498631 2015-12-27 10:45
English studying
Recent one year, language studying stimulates my biggest interest.   When in college, I was go...
用户1498631 2015-10-17 21:32
国庆出游小记
终于有时间坐下来,整理国庆出游小记。一路几千公里的行程,数日奔波。路上趁兴写了点小诗,在此记录。 (好久不动笔,不好意思,纯粹原创,自娱自乐而已。未经作者同意,不可转载)   归途中,...
用户1498631 2015-08-15 10:14
一颗芯片的成本
作者特别申明:如转发此文,请注明原创作者奔跑的小鸟,否则投诉转发者侵权。 作为电子产业链上的一员,无论是芯片的设计者,生产者,测试者,使用者都很想了解清楚一颗芯片的成本究竟由哪几个部分构成。这...
用户1498631 2015-07-12 22:09
Into the wild
Two weekend nights are spent on one excellent film named "Into the wild". This film is based on ...
用户1498631 2015-06-19 08:02
stereotyping issue
注:偏见往往是潜意识里面的东西。越是随着阅历的增加,我们越是容易对人形成偏见。无论是对不同民族,不同地区,不同人种,还是不同性别,甚至与不同的学校。而一些预加的框框,不真实且比较负面地加在了你对某...
EE直播间
更多
我要评论
12
23
关闭 站长推荐上一条 /3 下一条