微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 行业新闻动态 > 异质多处理器芯片中的数据流核心设计

异质多处理器芯片中的数据流核心设计

时间:08-06 来源:电子技术应用 点击:

4 共享存储区管理

  本设计将DM270系统平台中的一段32KB大小的存储区作为ARM和DSP的共享存储区。该存储区由DSP管理者负责管理。由于TMS320C5409的存储单位是字节,所以规定它所访问的共享存储区地址为0x8000~0xBFFF;而ARM7TDMI的存储单位是字,所以规定它能访问的共享存储区地址为0x50000~0x57FFF,共享存储区分配如图4所示。共享存储区分为32个存储块,每块大小为1 024B。前两个字节为共享存储块的状态标志位,其值为0代表此存储块闲置,1代表此存储块已被使用。存储块中剩下的1 022B用来存放数据。DSP管理者将所有ARM端需要DSP处理的数据都存储到这32个存储块上。


  当32个存储块全部被使用或者数据处理请求中所指定的DSP进程的LDE为0时,DSP管理者向ARM端提出该请求的进程阻塞,防止因不断地提出请求而造成系统资源的浪费。当所指定的DSP进程数据处理结束后,DSP端的数据流核心将该进程阻塞,并对DRQ空间和进程队列状态寄存器作相应调整,然后主动释放该DSP进程使用的共享存储块,同时向ARM端发出中断信号。DSP管理者接收到此中断信号后,根据进程队列状态寄存器判断出请求所指定的DSP进程已经可以开始处理数据了,让刚才在ARM端被阻塞的进程继续运行,并把数据写入共享存储块,以便DSP进程读取和处理。

  当存在闲置的存储块并且数据处理请求所指定的DSP进程的LDE不为0时,DSP管理者可直接将ARM端进程的数据写到共享存储块,以便相应的DSP进程读取和处理。


5 DSP端系统的热抽换

  DSP系统的更换技术对多媒体应用而言非常重要。如果DSP端需要播放不同格式的影片,则必须把整个DSP端系统更换以支持不同格式的解码器。因此在系统设计中使用了热抽换技术。传统热抽换技术的定义是动态地把系统中的核心层部分更换,在不重新开机的情况下,进程还可以正常工作。而本设计的热抽换是更换整个DSP端的系统,同时维持ARM端进程的正常工作。为了实现热抽换,必须在某段静态存储区存放多个版本的DSP系统程序。本设计中,这些程序被存放到DM270的Flash Memory中,ARM端的档案系统负责维护和管理这部分内容。

  DSP系统的热抽换过程如下:①DSP端要把那些由于没有进行数据处理而陷入阻塞的DSP进程全部释放,否则当DSP端系统更新后,这些进程会因为永远不能再得到相应的数据,而造成永久阻塞,形成系统资源浪费;②ARM端的DSP管理者会清空所有的共享存储区,同时阻塞ARM端的所有用户进程;③ARM端的档案系统将从Flash Memory中读取所需的DSP系统档案并将它加载到DSP的内存;④DSP端系统启动,DSP管理者唤醒ARM端所有被阻塞的进程,为更新后的DSP系统服务。

  ARM端的系统负责整个系统的正常运行,同时将数据处理请求和相关数据传送给DSP,而不管这些数据如何被DSP使用;DSP端只负责数据的处理,而不管数据的来源和用途。这种架构关系保证了DSP系统的热抽换是安全可靠的,不会破坏系统的正常运行。

  本文以DM270平台为基础,设计了DSP端的数据流核心和ARM端的DSP管理者。与传统的、基于时间片的多进程系统核心相比,数据流核心的进程是靠数据驱动的方式工作的。它能有效地减少进程的切换,节约系统资源,使DSP可以更加专注于多媒体数据的处理。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top