- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
SHARC并行系统软件设计方法
随着 数字信号处理(Digital Signal ProcESS or, DSP)技术的发展,DSP已被广泛应用于雷达、 通信等领域。虽然DSP经历了几代的发展,运算速度和能力都有了很大的提高,但在很多情况下,单片DSP已经不能满足实时处理的要求,必须寻求多片DSP并行处理的方案。
从系统结构出发可以将并行系统分为共享存储器并行系统和分布存储器并行系统。 AD公司推出的SHARC系列DSP 芯片同时支持这二种并行 处理器结构。通常,将AD公司的一系列双位高性能浮点DSP称为SHARC(Super Harvard Archi tecture)。对于共享存储器系统,通过SHARC间的外部共享总线实现。对于分布存储器系统,通过2个SHARC间的链路口直接连接,实现DSP间点对点的通信。
然而,不能认为将多个SHARC互相进行 硬件连接就实现了并行处理。真正的并行处理应该是使互连的各个DSP能够协调工作,缩短系统处理的时间。这需要并行系统中SHARC间能完成数据流的传递。并行系统中各个SHARC间数据流的传递同数据处理同等重要。本文针对这二种并行方式,分别给出了软件的设计方法和设计技巧,并且给出了针对ADSP2116X的程序实现。
1 共享存储器并行系统的设计
SHARC为多处理器系统提供了强大的支持,用户可以在不附加任何外围电路的情况下构成共享存储器并行系统。SHARC具有一套巧妙的分布式总线仲裁机制。使用2~6片SHARC把各SHARC的相应引脚相连就可以共享外部总线。每片SHARC都可以访问其他SHARC的片内存储器,还可以通过设置IOP 寄存器启动其他SHARC的 DMA操作。
组成共享存储器并行系统时,每一个SHARC都有一个惟一的标识:ID2~0,取值范围为000~110。ID=001表示该SHARC为1号DSP,ID=010表示该SHARC为2号DSP,依此类推。ID=000表示是单DSP系统。在多DSP系统中,ID=001号的DSP是必须存在的,这是DSP加载成功以后的主处理器。
在共享存储器系统中,任何时刻都只有一片SHARC可以驱动外部总线,该SHARC就被称为主处理器。其余的从SHARC如果需要访问总线,则必须先申请总线。主处理器如果此时没有数据传递或者总线占用时间到,就会释放总线控制权,把自己的外部总线驱动为三态,完成总线控制权的转移。
主处理器对从SHARC的内存访问和对自己的内存访问一样简单,既可以通过内核直接读写完成,也可以通过外部口DMA实现。在共享存储器并行系统中,每一片SHARC根据自己的ID号都有一个映射的多处理器存储空间。例如对于ADSP2116X,ID=001的SHARC对应的多处理器存储空间为0x100000~0x1F FFFF,ID=010的SHARC对应的多处理器存储器空间为0x20 0000~0x2F FFFF等。共享存储系统的LDF文件与单DSP系统有些不同。下面给出它的一个示例(以2个SHARC为例)。
例1:共享存储器系统LDF文件。
ARCHITECTURE(ADSP-21160)
SEARCH_DIR($ ADI_DSP211xxlib)
MPMEMORY{
DSP1{START(0X100000)} //第一片DSP在多处理
//器空间的映射地址
DSP2{START(0X200000)} } //第二片DSP在多处理
//器空间的映射地址
MEMORY
{pm_ rs TI { TYPE(PM RAM)START(0END
(0x0004000f)WIDTH(48) }
pm_code { TYPE(PM RAM)START(0END
(0x00049fff)WIDTH(48) }
dm_data { TYPE(DM RAM)START(0END
(0x00059fff)WIDTH(32) } }
PROCESSOR DSP1
{LINK_AG AINST(DSP2.DXE) //需要重新连接的
//DSP2的目标文件
OUTPUT(DSP1.DXE) //DSP1输出的目标文件
…… //和单DSP系统相同,故略去,下同
}
PROCESSOR DSP2
{LINK_AGAINST(DSP1.DXE) //需要重新连接的
//DSP1的目标文件
OUTPUT(DSP2.DXE) //DSP2输出的目标文件
…
文档评论(0)