算法设计人员在实施宏观优化时面临的课题是,如何向单独的STP引擎传输数据。从主存储器向SoC传输数据时一般使用DMA控制器,而且STP引擎也配备有DMA控制器。
但主存储器延迟及内部总线结构等因素也会影响DMA控制器的操作,因此对于不太熟悉SoC内部架构的软件技术人员(算法设计人员)来说障碍较大。
采用模板结构
因此,STP引擎采用了“模板”结构。模板是STP引擎用C语言源代码的雏形,预先记述了使用DMA控制器从主存储器向STP引擎内的SRAM读入数据的处理及其逆处理。
模板基本由精通STP引擎架构的瑞萨技术人员制作。据瑞萨介绍,STP引擎发布已有数年,该模板的种类已得到扩充。“关于图像处理,有在线读取像素的模板以及纵向读取等各种模板”(瑞萨电子的粟岛)。
如果使用模板,算法设计人员就无需考虑与DMA控制器操作相关的详细记述,可通过尝试多种宏观并行化模式,更加专注于宏观水平上的优化。
在模板中,代码的前半部分记述了从主存储器读取数据的处理,后半部分则记述了将数据写回主存储器的处理。DMA控制器相关处理与算法处理是分开,成为单独的一块,因此易于操作。“将DMA相关操作与算法处理较细地混在一起的一体化做法,有时也会使处理效率有若干提高。但我们认为,与其追求这种细微的优化,还不如采用模板样的结构,使算法设计人员能从宏观观点出发轻松实施优化,应可实现出色的设计”(粟岛)。
其实,Yoozma的DDB-Lite就充分利用了这种模板结构,算法设计人员尝试并探索了多种架构分割模式。
从4芯片结构开始尝试,最终优化为双芯片结构
将单波段扩充为全波段时,Yoozma首先尝试了采用4个XBridge的结构。结果如图1所示。除了为单波段/全波段调制处理中负荷最重的逆FFT处理分配了一个STP引擎之外,还分别为Reed-Solomon编码、卷积编码以及时间交错频率交错处理分配了一个STP引擎。
图1 4芯片结构
接着又尝试了将XBridge数量减少一个的3芯片结构。将上述4芯片结构中相互分离的Reed-Solomon编码处理与卷积编码处理合并在一个STP引擎中完成。而且,原来由CPU执行的全波段1次调制(64QAM)处理也由同一STP引擎完成。除此之外,其他处理基本与4芯片结构时相同。
图2 3芯片结构
DDB-Lite最后又去掉了一个XBridge,从而实现了双芯片结构。采用3芯片以上结构时由CPU执行的能量扩散(energy dispersal)处理与字节间插处理,均由执行Reed-Solomon编码处理等的STP引擎完成。而且,还将采用3芯片结构时整整占用一个STP引擎的时间交错处理与频率交错处理恢复为由CPU执行。
图3 双芯片结构
瑞萨充分发挥了可动态切换多种电路的DRP的优势,从而将多种OFDM调制处理模块安装在了一个STP引擎上。(未完待续,记者:近藤 智则)