原创 通信SDR处理器漫谈

2013-5-8 15:17 2202 20 23 分类: 消费电子

整理2011年3月和8月的两篇日记,形成此文,随意分享,说得不对,多多包涵。

 

 多core多线程,矢量处理器内核,这些似乎是目前SDR的通信用处理器的一条殊途同归之路。

 

放眼看去,ceva,Tensilca,cognovo以及Sandbridge的号称用于4G的SDR的处理器,都有这样的基本特征。(由于涉及知识产权问题,此处不好将他们的系统架构图,内核架构图贴出来了。且以上公司大多被收购了,品牌不知道还能否保留住。但咱们还是尊重他们的知识产权,不在此透露太多技术细节。)

 

当然这些都是可以看到。还有那些不能轻易看到细节的,比如说高通的。

 

其实这样的一个结构的趋势,主要还是基于对4G的基础系统的分析,即对OFDM系统的基础处理流程的分析。OFDM系统本身就是一个可以有很高并行度的处理的系统,才把SDR的内核的处理器架构引向了这个方向。

 

 

公司

系统架构

tool

comment

cognovo

HW: MCE (ARM,sequencer,dual VSP,turbo,system RAM,HARQ RAM,RFIF)
SW: SDM OS, PHY kernel library

kernel SDK, system SDK

128MAC per cycle each VSP

Tensilica

HW: multi Connx DPUs (BBE16,SSP16,BSP3,Turbo16,PIF)
custimized ISA and user defined interface, HW easy integration
SW: kernel library

TIE language, XPRES compiler,
processor and software developer toolkit

16*3(BBE16)=48MAC per cycle;

CEVA

HW: XC321 single core
SW: LTE software kit

optimized c compiler, IDE

32MAC per cycle

Sandbridge

HW:SB3500(3 SBX node,ARM9,HAB bridge,pheripherals,digRF)

 

48MAC per cycle

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

终究还是有了多年的通信系统信号处理的工程背景,和在芯片设计公司沾染芯片架构设计的一些浅薄认知。感觉到这个SDR的处理器的设计,指令集的设计,算法的编写的曲折与趣味。

 

先来看看都是些什么人在做这些事情。

 

最终芯片的内核必然还是那些个做内核设计的人来完成的,肯定都是一些绝顶聪明之人。

 

而通信系统的分析必然还需要那些个做通信信号处理的人来完成,也必不是等闲之辈。

 

而这两个领域不能完全说风马牛不相及,但毕竟还是隔行如隔山,水深水浅,只有行内人才知道。理解对方领域的东西,互相取挑剔,去磨合,去思考,再回来思考自己的行内的内容,进一步循环再循环,最后演进出咱们看到每一代的SDR的处理器。

 

而真的能够做到尽善尽美,需要付出多少的代价。就比如说TI这样的大公司,多少各个方面的专家和大师呢?而TI的DSP芯片的份额却还是在日渐萎缩的。而自称是多线程处理器架构的鼻祖的SB3500的这个处理器。其中FFT的运算,居然没有考虑每一级运算之间的scale。估计他们的通信专家们都是和做内核,做指令集以及做算法库的人交流也并不很畅通吧。也许根本没有通信信号处理的专家,而只是自认为已经充分掌握通信系统需求的一帮人自娱自乐罢了。

 

DSP这样的有着特殊处理器结构的内核的东西,确实是跟着系统分析走的,有着很强烈的系统适用性的特征。而不同的人对系统的理解都不一样,导致的各个DSP的细节设计上出入很大。于是要想编译器能自动生成很高效的代码,在我看来也真的是很搞笑的。所以要想在不同的DSP之间做到代码的一个很好的可移植性,其实也是相当难的。诸如说intrinsic这样的东西,已经很大程度上表达了编译器的大师们尽量减少用户使用时候,平台移植工作量的问题了。但是还是有太多的细节要求DSP软件工程师永远要纠结在每个DSP的细节里面。不过这何尝不是DSP设计者与DSP软件工程师间交流的一种方式呢?

 

说到intrinsic,就再多废话几句。

 

我要说intrinsic是个骗子,compiler guys肯定会跳起来,把我骂个狗血淋头。呵呵。

 

intrinsic就是长得比较好看一点,对于DSP的程序来说,整个看起来还是遵循着C的规则。而真正的一颗DSP,例如有强大的vector engine的DSP处理器,期待就用标准的C代码,compiler能自动变成并行的指令,这只是一个传说。所以,DSP工程师必须学会用intrinsic,其实就是把汇编用看起来跟C一个规则的外表包起来的东东。要真正写好DSP的处理算法,不了解DSP的内核有多少种多少个register是不可能;不掌握DSP的指令集是不可能的;不掌握每个intrinsic也是不可能的。期待着compiler帮助你做着所有的事情,只是天方夜谭。

 

intrinsic也有他的好处。就是他毕竟将汇编指令封装了一层,所以对于指令集的升级维护等工作会比较方便一点。但是对于指令集升级,真正的工作源于它为什么要升级---哈,对了,肯定是DSP内核发生了改变,例如从8MAC升级到了16MAC甚至64MAC甚至128MAC;而遇到这样的case,你原来的算法的代码肯定期待提高并行度,所以你还是必须要用新的intrinsic。哈,所以问题还是又转回来了。所有DSP工程师们就是在这里挣扎了,也在这里享受乐趣。不再写汇编代码,写intrinsic,用汇编的思路和汇编的手法。

 

文章评论3条评论)

登录后参与讨论

hsb_wh_625017196 2013-5-11 10:22

SDR多核知识

用户1406868 2013-5-9 07:30

fooling around here!

用户1602177 2013-5-8 15:19

好文,很有意思的见解,感谢分享~~
相关推荐阅读
用户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
注:偏见往往是潜意识里面的东西。越是随着阅历的增加,我们越是容易对人形成偏见。无论是对不同民族,不同地区,不同人种,还是不同性别,甚至与不同的学校。而一些预加的框框,不真实且比较负面地加在了你对某...
我要评论
3
20
关闭 站长推荐上一条 /2 下一条